ThaiSEOBoard.com

< กดยุบ (ห้องยกเลิกการใช้งาน) => TWG => ข้อความที่เริ่มโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 01:08:29



หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 01:08:29
ตอนนี้เดือดร้อนมาก

โฮสนอกที่ใช้ไม่รู้มันรองรับหรือไม่รองรับภาษาไทย

คือผมใช้บอร์ด IPB [ Invision Power Board 2.2.1] ล่าสุด

ปัญหาเรื่องภาษาไทยก็เกิดขึ้น

ผมใช้ character set iso-8859-1

ซึ่งลองโพสดู

เนื้อหาปกติดี แต่ที่ไม่ปกติคือ หัวข้อกระทู้ (เท่านั้น) มันชอบตัดประโยค เช่น    
บุตรชาย​​ "​​เยลหลี​​" ​​เพิ่งคลอด​​​ไม่​​​ถึ​ŧ
จบแค่นี่ แปลกมะ?

แต่พอไปดูเนื้อหาข้างในนั้น มันปกติมาก ไม่ตัดคำ ไม่อะไรเลย ปกติทุกอย่าง

อะ พอผมลองมาเปลี่ยนเปง UTF-8
เป็นแบบนี้เลยครับ ทั้งหัวข้อและเนื้อหา
???????????????????????? "????????????????????????" ????????????????????????????????????????????????????????? 17 ????????????.???????????????????????????????????�?????????, ???????????????????????? "????????????????????????" ??????????

ทำนองนี้เลย

พอมาเปลี่ยนเปง tis-620 บ้าง
ก็เป็นแบบ ??????????????????????????????????? ภาษาต่างด้าว !
แถมขึ้น Error ในบางโซนว่า
IPB WARNING [2] mb_substr() [function.mb-substr]: Unknown encoding "TIS-620" (Line: 2794 of /sources/ipsclass.php)

เซงครับเซง

รายละเอียด
# MySQL client version: 5.0.18
# Used PHP extensions: mysql
ชุดตัวอักษร​ (charset) ​ของ​ MySQL:  UTF-8 Unicode (utf8)
MySQL connection collation: tis620_thai_ci [มีให้เลือกไทย แต่มะรู้รองรับไทยได้ป่าว]

คิดว่าพอจะแก้ได้ไหมครับ ท่านโปรแกรมเมอร์ทั้งหลาย


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 21 กุมภาพันธ์ 2007, 01:23:46
ตอนผมแก้ผมไปแก้ที่ DB เลยเขียนโปรแกรมเรียก Table list มาเลยแล้วใช้คำสั่ง

alter table tablename character set utf8

แบบวนลูป จากนั้นไปหา class ของ ipb ตรงส่วน connect db แล้วเพิ่ม 3 บรรทัดที่บังคับให้ mysql แสดงผลออกมา พอทำจบปุ๊บก็ไม่มีอาการเพี้ยนใดๆ เลย แม่แต่ใน DB ก็เก็บเป็นภาษาไทยถูกต้อง แต่ก้นั่นล่ะ มัน IPB Version เก๊าเก่า  :lol:


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 02:01:01
อ้างจาก: "Tee++;"
ตอนผมแก้ผมไปแก้ที่ DB เลยเขียนโปรแกรมเรียก Table list มาเลยแล้วใช้คำสั่ง

alter table tablename character set utf8

แบบวนลูป จากนั้นไปหา class ของ ipb ตรงส่วน connect db แล้วเพิ่ม 3 บรรทัดที่บังคับให้ mysql แสดงผลออกมา พอทำจบปุ๊บก็ไม่มีอาการเพี้ยนใดๆ เลย แม่แต่ใน DB ก็เก็บเป็นภาษาไทยถูกต้อง แต่ก้นั่นล่ะ มัน IPB Version เก๊าเก่า  :lol:


ช่วยสอนแบบละเอียดได้ป่ะครับ พี่ตี๋

ผมไม่ค่อยโปรเรื่องการ ทำนู้นทำนี้กับ SQL


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 21 กุมภาพันธ์ 2007, 02:27:10
1. ตอนแรกผมก็เรียกคำสั่งนี้มา
โค๊ด:
show tables from [i]yourdatabase[/i]

2. จากนั้นก็เอามา fetch ด้วยคำสั่ง
โค๊ด:
alter table $row['table'] character set utf8


เท่านี้ไอ้ Database ที่มัน Set default เป็น latin.... ก็จะถูกเปลี่ยนเป็น utf8_general_ci

ถ้าอยากเซ็ต Database ด้วยก็ใช้
โค๊ด:
alter database [code]yourdatabase[/code] character set utf8


แต่จริงๆ เอาแค่ Table ก็พอ

จากนั้นไปแกะโคดของ IPB ส่วนที่มัน Select Database หลังจาก select แล้วเรียกคำสั่ง
โค๊ด:

mysql_query("SET character_set_results=utf8");
mysql_query("SET collation_connection = utf8_general_ci");
mysql_query("SET NAMES 'utf8'");


ถ้ามันเป็น class อยู่ก็อาจเรียกตาม Class มันได้เลยเช่น
โค๊ด:
$this->query("SET character_set_results=utf8");
$this->query("SET collation_connection = utf8_general_ci");
$this->query("SET NAMES 'utf8'");


สุดท้ายก็ไปเปลี่ยนตรง meta เป็น utf-8 ซะ

อ้างถึง
ข้อสังเกตุ
mysql ใช้ utf8 ไม่ใช่ utf-8


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 03:03:55
ขั้นตอนทั้งหมดทำใน phpMyadmin เหรอครับ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 03:18:40
ผมไม่รู้เลยครับ ว่าให้ทำที่ไหน -*-


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 03:33:01
โค๊ด:
alter table $row['table'] character set utf8


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['table'] character set utf8' at line 1

Errorที่คำสั่งนี้


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: sealinda ที่ 21 กุมภาพันธ์ 2007, 04:56:29
เข้ามา งง  :lol:  :lol:  :lol:  :lol:


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: amaudy ที่ 21 กุมภาพันธ์ 2007, 07:26:41
เสี่ยตี๋ปล่อยให้งง

เดี๋ยวก็มาแก้ปมครับ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: pete ที่ 21 กุมภาพันธ์ 2007, 07:33:28
พี่ตี๋ อย่าพูดภาษาอังกิดได้มั๊ยคับ แปลไม่ออก (ฮา)

ล้อเล่นนะจ๊ะ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: naisara ที่ 21 กุมภาพันธ์ 2007, 10:45:41
ขอบคุณครับคุณตี๋ เคย PM ไปถามส่วนตัวซึ่งคุณตี๋ก็ ได้ช่วยเหลือเร็วมากๆ แต่ว่าผมมือไหม่อ่ะครับ  ไม่รู้ต้องไปทำตรงไหนอ่ะครับ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 21 กุมภาพันธ์ 2007, 12:38:29
เอาแบบนี้ละกันครับ ไม่อยากอธิบายยาวๆ เดี๋ยวไปกันใหญ่ เขียนมาให้เลยล่ะกันครับ

http://nice5ive.org/downloads/mysqlcharset.zip

เอาไปแก้ config ตรงหัวมันนิดนึง มันจะเป็น charset และ collate เป็นตัวที่เรากำหนด โดยเริ่มเปลี่ยนตั้งแต่

database
tables
columns

 :P


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 19:05:07
ลองแล้วครับ รันได้

แต่พอลองโพส

หัวข้อ ปกติ ไม่โดนตัดแล้ว !
แต่พอมาในเนื้อหา มันโดนตัด แบบนี้

อ้างถึง
ตอนนี้​​​เดือดร้อนมาก​​

​​โฮสนอกที่​​​ใช้​​​ไม่​​​รู้มันร​�
�​งรับ​​​หรือ​​​ไม่​​​รองรับภาษา​​​ไ�
��​ย​

​​คือผม​​​ใช้​​​บอร์ด​​ IPB [ Invision Power Board 2.2.1] ​​ล่าสุด​​

​​ปัญหา​​​เรื่องภาษา​​​ไทยก็​​​เก​�
�​ดขึ้น​​

​​ผม​​​ใช้​​ character set iso-8859-1


เหอๆๆๆๆๆ

สรุปคือรันแบบไฟล์ที่คุณตี๋ให้มา(UFT-8) ก็แก้ปัญหาเรื่องหัวข้อได้ ทำให้หัวข้อไม่โดนตัดประโยค แต่เนื้อหาจะโดนตัดประโยค

แต่ถ้าปกติ คือ (iso-8859-1) หัวข้อจะโดนตัดประโยค แต่เนื้อหาจะปกติมากๆ ไม่โดนตัดประโยค


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 19:08:46
ตารางที่ชื่อว่า ibf_topics มันจะเก็บข้อมูล หัวข้อ

ทำให้มันใช้ utf8 เฉยๆ ได้ไหม

แล้วตารางอื่นๆ ก็ปกติของมัน ทำได้ไหมครับ ?


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 21 กุมภาพันธ์ 2007, 19:39:33
มันยังไม่จบงัยครับ เหลือส่วนยาก สุดคือการแกะโคด IPB ตรงส่วนการติดต่อ Database มาเพิ่ม 3 บรรทัดอย่างที่บอกไปครับ  :o


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 20:01:50
ใน IPB มันมีไฟล์ที่ชื่อว่า mysql_queries.php ไม่รู้ใช่ป่าว

คุณตี๋ลองโหลดไปดูครับ ว่าใช่ป่าว

โค๊ด:
http://files.icez.net/download/cKXmgvwlZM


จัดไปทั้ง Folder ที่ชื่อว่า SQL เลย


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 21 กุมภาพันธ์ 2007, 23:48:05
รบกวนด้วยนะครับคุณตี๋

ผมแอด MSN ไว้ละเด้อ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 21 กุมภาพันธ์ 2007, 23:57:01
ไม่ใช่ครับ ทั้ง โฟลเดอร์เป้นคำสั่ง queries ของระบบ

มันน่าจะอยู่ใน

โค๊ด:
ips_kernel/class_db_mysql_client.php


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: EThaiZone ที่ 22 กุมภาพันธ์ 2007, 00:02:35
อิๆ เข้ามาอ่านเฉยๆ

ลุยเลยพี่ตี๋คนดีของสังคม

นักซ่อมบอร์ด อิๆ  :lol:


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 22 กุมภาพันธ์ 2007, 00:46:34
แล้วต้องแก้ไงอ่ะครับพี่ตี๋ T T


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 22 กุมภาพันธ์ 2007, 00:54:15
ลองไป Search ช่วงนี้ ในไฟล์ที่บอก

โค๊ด:
if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
        {
                $this->fatal_error();
                return FALSE;
        }


แล้วแก้เป็นแบบนี้

โค๊ด:
 if ( ! mysql_select_db($this->obj['sql_database'], $this->connection_id) )
        {
                $this->fatal_error();
                return FALSE;
        } else {
            $this->query("SET character_set_results=utf8");
            $this->query("SET collation_connection=utf8_general_ci");
            $this->query("SET NAMES 'utf8'");
        }



ลองดูนะ ยังไม่รู้เหมือนกันว่าได้เปล่า เพราะไม่ได้ลงโปรแกรม เพียงแต่ไปรื้อมาดูให้ ยังไงซะ Database ต้องเปลี่ยนเป็น utf8 และ meta ต้องตั้งเป็น utf-8 แล้วนะ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 22 กุมภาพันธ์ 2007, 01:02:26
http://www.modelalive.com/showpow/index.php?showtopic=36

เป็นแบบเดิมครับ T T ลองเข้าไปดู


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 22 กุมภาพันธ์ 2007, 01:03:49
อ้างจาก: "chonyagusa"
[url]http://www.modelalive.com/showpow/index.php?showtopic=36[/url]

เป็นแบบเดิมครับ T T ลองเข้าไปดู


ลองตั้งกระทู้ใหม่ยังครับ ของเดิมมันเละตั้งแต่อยู่ใน database แล้วนะครับ


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: EThaiZone ที่ 22 กุมภาพันธ์ 2007, 01:09:29
ตั้งใหม่ก็เหมือนเดิมครับ

(พอดีเจอในเอ็ม ผมเลยเป็นผู้ช่วยคนที่ 2 เหอๆ)

ผมว่าน่าจะเป็นที่สคริปส่วนอื่นของบอร์ดอะ
พวกตัด html  :?


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: Tee++; ที่ 22 กุมภาพันธ์ 2007, 01:14:59
อ้างจาก: "EThaiZone"
ตั้งใหม่ก็เหมือนเดิมครับ

(พอดีเจอในเอ็ม ผมเลยเป็นผู้ช่วยคนที่ 2 เหอๆ)

ผมว่าน่าจะเป็นที่สคริปส่วนอื่นของบอร์ดอะ
พวกตัด html  :?


งั้นเหรอผมก็ไม่เคยใช้ด้วย IPB ที่ขอคุณโจ้ไปเมื่อวันก่อนก็ยังไม่มีสักกระทู้ เคยลงแต่โฮสในไทย ลงเสร็จใช้ได้เลย วิธีที่บอกไปผมเคยเอาไปใช้แก้กับ WP น่ะนึกว่า IPB ก็คงเหมือนกันซะอีก เดี๋ยวยังไงผมจะลองเอาลงที่ hostgator ดูนะ แก้ยังไงค่อยเอามาบอก ระหว่างนี้ถ้าแก้กันได้แล้ว ก้เปลี่ยนมาบอกผมแทนนะ 555+


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: EThaiZone ที่ 22 กุมภาพันธ์ 2007, 01:29:09
ปวดหัว ลองหา htmlspecialchars ในนั้นก็หาแล้วเจอแต่ไม่เกี่ยวกัน

ปวดหัว เอิ้กๆ
น่าจะไปใช้ VB เนอะ (ฮา)

โค๊ด:
http://www.ethaizone.com/Simple_Search-Replace.zip


ตัวนี้ไงที่ผมว่า ค้นหาคำในไฟล์ทั้งโฟลเดอร์ได้

ผมใช้ค้นหา htmlspecialchars  ทั้งโฟลเดอร์ของ ipb
มันเจ๋งนะขอบอก

ลองใช้แล้วจะติดใจ  :D

ท่านอื่นก็โหลดได้นะครับ แต่ผมอัพไว้ไม่นานจะลบนะ  :D


หัวข้อ: + พี่ๆโปรแกรมเมอร์ เข้ามาที +
เริ่มหัวข้อโดย: chonyagusa ที่ 22 กุมภาพันธ์ 2007, 01:29:51
ครับผม ผมมะรู้ว่ามันมีการแบบว่า โฮสนู้นไม่รองรับไทย โฮสนี้รองรับไทยหรือป่าว เกี่ยวมะ?