Narisa.com: มาครับ มาดูกันให้เคลีย utf8 กับ phpmyadmin - Narisa.com

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

มาครับ มาดูกันให้เคลีย utf8 กับ phpmyadmin ภาษายึกยือ ปัญหาที่แก้ไม่ตก ของบางคน Rate Topic: -----

#1 User is offline   ZePhy 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 4
  • Joined: 07-August 07

  Posted 07 August 2007 - 11:49 PM

จริงๆ คอยตามอ่านความรู้ในนี้มานานละ แต่ไม่ได้ mem ซักที วันนี้ได้โอกาส เลย mem ซักหน่อย

หลายท่านเชี่ยวชาญ utf-8 อยู่แล้ว ผ่านเลยครับ

Quote

ก่อนอื่นผมใช้ตามนี้นะครับ
Apache 2.2.4
PHP 5.2.3
MySQL 5.0.45
phpMyAdmin-2.10.2

OS:XP SP2
default lang : eng
charset และ collation ทุกที่เป็น utf-8 หมดทั้ง db และตาราง
ภาษาApache Environment th


ก็เข้าเรื่องเลยนะครับ อาจจะตรงกับที่หลายๆคนอยากรู้ เพราะผมอ่านมาจากเว็บนี้ หลายกระทู้แก้ส่วนใหญ่กระทู้จะนานแล้ว แก้ตามแล้วไม่ได้ผล ที่ไม่ได้คงเป็นเพราะเวอร์ชันใหม่กว่าหรือปัจจัยอย่างอื่น ก็ไม่ทราบได้ เลยลองๆดู(ได้มาพักนึงละแต่วันนี้มีเหตุต้องมาโพส)
หลายๆคนคงเป็น ตอนจะใช้ utf-8 คงใช้ code ดังนี้
ส่วนของหน้าเว็บ
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>

ส่วนติดต่อ
mysql_query("SET NAMES 'UTF-8'");
mysql_query("SET character_set_results='UTF-8'"); // <-- จริงๆบรรทัดนี้ไม่ต้องก็ได้ บรรทัดบนรวมอยู่แล้ว


เอ๊ะก็ดูจะหมดแล้วนี่หว่า ทั้งหน้าเว็บก็แสดงไทยได้ดี แต่ทำไมเข้าไปดูใน phpmyadmin เป็นแบบนี้

ยึกๆยือๆ แต่ไม่ใช่ ????? นะครับ คนละกรณีกัน(ขอแก้นะเพราะ) เว็บนี้ char ไม่ตรงกันทำให้เพี้ยน

แก้ไงดีง่า ไม่รู้จะตั้งไรแล้ว เครียดๆ


มาๆ เรามาดูกันว่า ทำไงให้หน้าเว็บและ phpmyadmin อ่านไทยได้สมบูรณ์
โค้ดเจ้ากรรมมันอยู่ที่
UTF8 กับ UTF-8 ไม่เหมือนกันตอนติดต่อ

ซึ่ง UTF8 จะอ่านไทยได้ใน phpmyadmin ด้วย แต่ UTF-8 phpmyadmin อ่านไม่ออก ยึกๆยือๆ รู้สึกปัญหานี้หลังๆ คงเคยเจอกันแน่นอน

เพื่อความสะดวก ในไฟล์ที่ติดต่อ database เป็นแบบนี้ครับ จะได้เพิ่มแค่ที่เดียว
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "xxxx";
$dbname = "yourDB";

$dbc = mysql_connect($dbhost,$dbuser,$dbpass) or die ("Can not connect MySQL");
$dbs = mysql_select_db($dbname) or die ("Can not connect database");
mysql_db_query($dbname,"SET NAMES UTF8");//เพิ่มตรงนี้บรรทัดเดียว สบายแล้ว สากลๆ utf8


หน้าอื่นก็ คิวรี่ปกติเลยครับ

** ถ้าเกิดใช้ utf8 แล้วข้อมูลเก่า utf-8 เอามาใช้ไม่ได้นะครับ บอกก่อน **
แต่ถ้าเปลี่ยนกลับเป็น mysql_db_query($dbname,"SET NAMES UTF-8"); จะอ่านของเก่าได้แต่ phpmyadmin อ่านไม่ออก

ทีนี้ว่าในส่วนของ Browser กันบ้าง
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>
มีค่าเท่ากับ
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF8"/>

คือใน browser ใช้ได้เหมือนกันครับ แต่ตัวบนดูจะเป็นมาตรฐานกว่า

** แนะนำสำหรับคนพึ่งเปลี่ยนมาใช้ PHP5 (มีอีกเยอะเลยที่ยังใช้4อยู่ เพราะห่วงเรื่องภาษา กับ ความเคร่งครัดของ5นี่แหละ) หรือ ใช้ tis-620 กับ php5 ยังไงลองมาใช้ utf-8 ดูสิครับ แล้วคุณ จะหมดปัญหาเรื่องภาษาไปเลย ยืดหยุ่นกว่ามาก เมื่อทำทุกอย่างได้เข้าที่แล้ว

ปล.ผิดพลาดขออภัยด้วยละกัน
ที่คิดจะเขียนเพราะวันนี้ เถียงกับคนอยู่ว่า เว็บอ่านออกพอใน DB อ่านไม่ออกเป็นปกติ
ใครๆก็เป็นกัน
ผมก็หงุดหงิดสิ ยิ่งเป็นคนเถียงกับผมมีอาชีพ programer ด้วยน่าจะรู้ code ถ้ามันตรงกันจริง ต้องอ่านได้สิ
ทำงานที่ DB บางทีเร็วกว่าเยอะเลย ก็เลยได้เรื่องนี้มาเล่ากันฟัง

สมาชิกใหม่ฝากตัวด้วยครับ :D

ไว้ครั้งหน้าถ้ามีเวลา จะมาพูดถึง mod rewrite กันครับ

This post has been edited by ZePhy: 09 August 2007 - 10:36 AM

0

#2 User is offline   natty 

  • Star
  • View blog
  • Group: Star
  • Posts: 994
  • Joined: 07-March 07

  Posted 08 August 2007 - 12:53 AM

อืม ไม่เคยรู้มาก่อนเหมือนกันค่ะ และมีปัญหาเรื่องนี้บ่อยๆ ขอบคุณที่มาแชร์นะคะ

ป.ล. จริงๆ กระทู้ของคุณน่าอ่านมากเลยค่ะ มีประโยชน์มากๆ ขอบคุณล่วงหน้าค่ะ

This post has been edited by natty: 08 August 2007 - 05:36 AM

0

#3 User is offline   juacompe 

  • Site Admin
  • PipPipPipPip
  • View blog
  • Group: Admin
  • Posts: 2774
  • Joined: 12-January 05

Posted 08 August 2007 - 02:24 AM

จริงๆแล้วปัญหา character encoding เนี่ยนะครับ วิธีแก้มีวิธีเดียว ง่ายๆเลยด้วย คือ "ตั้งแต่ database จนถึงหน้าจอ set ให้เหมือนกันให้หมด" แค่นี้ก็ใช้ได้แล้วครับ

แล้วปัญหานี้มันยากตรงไหน?
- มันยากตรงที่ คนถามไม่รู้ว่าต้อง set ที่ไหนบ้าง? ขอแค่ระหว่างทางจาก database ถึงหน้าจอ มีซักที่ที่ set ไม่ถูก แค่นี้มันก็เสียแล้ว จริงไหมครับ?
- DBMS คนละยี่ห้อกัน ก็มีวิธี set ต่างๆกัน Web Server ก็เช่นเดียวกัน

แล้วสาเหตุจริงๆที่มันยากมากๆๆๆๆๆ คือ...
- ท่านๆคนถามทั้งหลาย ไม่เคยจะบอกเลย ว่าตัวเอง set ตรงไหนมาแล้วบ้าง? set อย่างไร? environment ที่ใช้ก็ไม่เคยจะบอก และที่แย่ที่สุด คือพอแก้ได้ ก็หายจ๋อย มีคนน้อยมากๆ ที่จะกลับมาสรุปว่า ปัญหาตัวเองที่เกิดขึ้นนี้ มันเกิดเพราะอะไร? (ซึ่งส่วนใหญ่ก็เป็นความซุ่มซ่ามนั่นแหละครับ ก็เลยอาย ไม่อยากบอก แต่ว่า..) จะมีใครเข้าใจบ้างไหม? ว่าความซุ่มซ่ามของคุณ กับเวลาที่คุณเสียไป (รวมกับเวลาของคนที่มานั่งช่วยคุณแก้ปัญหา) มันสามารถ reuse ได้ ด้วยการกระทำง่ายๆ แค่สรุปปัญหาของตัวเองให้เป็นรูปแบบที่อ่านง่ายๆ เพื่อในอนาคต คนอื่นจะได้มา search ได้ อย่างที่คุณ ZePhy ทำ ทำให้พวกเราได้รู้ว่า

Quote

ถ้าสำหรับ environment แบบข้างล่าง

View PostZePhy, on Aug 7 2007, 11:49 PM, said:

Apache 2.2.4
PHP 5.2.3
MySQL 5.0.45
phpMyAdmin-2.10.2

แล้ว
UTF8 กับ UTF-8 ไม่เหมือนกันตอนติดต่อ

OS: ???
default language ใน OS: ???
setting เกี่ยวกับภาษาใน phpinfo: ???
charset และ collation ของ database: ???
charset และ collation ของ table: ???


ขอบคุณครับ -/\-

ฝากไว้ให้คิด...
- ปัญหาเรื่อง encoding เป็นตัวอย่างที่ชัดเจนมากๆ ของหนึ่งในข้อมูลที่ล้ำค่า แต่ถูกทิ้งให้รกจนคุ้ยไม่เจอ
- คิดว่า narisa มีคน post วันละกี่ post ครับ? ถ้าเจ้าของกระทู้ไม่ดูแลกระทู้ตัวเอง จะ admin หรือใครก็มาช่วยดูแลไม่ไหวหรอกนะครับ

This post has been edited by juacompe: 08 August 2007 - 02:43 AM

0

#4 User is offline   ZePhy 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 4
  • Joined: 07-August 07

Posted 08 August 2007 - 02:37 AM

^
^

ปัญหาแบบผมน่าจะเจอกับ เวอร์ชันหลังๆนะ ไม่ค่อยแน่ใจเมื่อก่อนใช้ tis-620

ปล. edit ให้แล้วครับ

This post has been edited by ZePhy: 08 August 2007 - 02:52 AM

0

#5 User is offline   juacompe 

  • Site Admin
  • PipPipPipPip
  • View blog
  • Group: Admin
  • Posts: 2774
  • Joined: 12-January 05

Posted 08 August 2007 - 02:45 AM

View PostZePhy, on Aug 8 2007, 02:37 AM, said:

ปล. edit ให้แล้วครับ

ขอบคุณอีกทีครับ ^ ^
ปล.
- ยินดีต้อนรับสมาชิกใหม่นะครับ ^ ^
- edit ให้แล้วเหมือนกัน ^ ^
- อ้อ อีกอย่างครับ ถ้าคุณ ZePhy สามารถทดสอบได้ ว่าพวกข้อมูล environment ที่หายไป

Quote

OS: ???
default language ใน OS: ???
setting เกี่ยวกับภาษาใน phpinfo: ???
charset และ collation ของ database: ???
charset และ collation ของ table: ???

จะกระทบกับวิธีแก้ปัญหาวิธีนี้ไหม? จะทำให้ solution นี้มีประโยชน์สูงสุดครับ หรือหากคุณ ZePhy ไม่สะดวก ขอเพียงเติมข้อมูลที่ผมสงสัยให้หน่อย จะเป็นความกรุณามาก อย่างน้อย หากท่านอื่นมีปัญหาเช่นเดียวกับคุณ ZePhy จะได้เช็คค่าเหล่านี้ให้ตรงกัน (ข้อมูลเหล่านี้คือข้อมูลที่ผมเชื่อว่า หากเปลี่ยนให้ต่างกันกับเครื่องของคุณ ZePhy แล้ว จะส่งผลกระทบกับวิธีนี้ครับ)

This post has been edited by juacompe: 08 August 2007 - 02:52 AM

0

#6 User is offline   catz001 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 26
  • Joined: 19-December 06

  Posted 09 September 2007 - 06:24 AM

เคลียร์สุดๆ ครับกระทู้นี้ ตอนนี้ผมหันมาใช้ utf8 ทั้งหมดแล้วครับ
0

#7 User is offline   madeks 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 13
  • Joined: 04-April 04

Posted 03 October 2007 - 07:03 PM

เอ่อ ขอเสริม condition เพิ่มอีกอัน คือ encoding ของ file คับ

คือถ้าเรา implement บน window default ของ มันจะเปน ansi ซึ่ง อาจจะทำให้มันมีปันหาได้คับ (ดช่น insert ข้อมูล ไม่เข้า)

ก้อให้เราเปลี่ยน encoding ให้เปน utf-8 ซะ
อาจจะ ทำโดยการเปิด notepad แล้ว save as แล้วก้อเปลี่ยน encoding คับ


ปล. ที่ผมใช้นะคับ

OS win XP
PHP Version 5.2.3
DB : mysql 5.0.37
0

#8 User is offline   nengsite 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 02-January 08

Posted 02 January 2008 - 12:14 PM

ผมเคยใช้ host ฟรีของต่างประเทศแล้วมีปัญหาเรื่องนี้มาก คือ หัดเขียน php ทำกระดานตอบคำถามธรรมดา แต่ไม่รองรับภาษาอังกฤษจนเพื่อนถาม เมิงทำให้ใครเข้าหวะ ผมละฮาเลย
ขอบคุณมากครับ
0

#9 User is offline   squalltua 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 4
  • Joined: 07-January 08

Posted 07 January 2008 - 02:38 PM

ขอบคุณมากมากครับกำลังติดเลย
0

#10 User is offline   kingadora 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 17-January 08

Posted 17 January 2008 - 08:33 PM

ผมก็ทำตามคุณ Zephy แล้วน่ะครับแต่ก็ ยังไม่หาย งงมากๆๆ ลอง tis620_thai_ci ตั้งแต่ เซตอัพ แล้วก็ยังเป็น ?????อยู่

ปล.ที่งงคือ ตอนเลือก การเรียงลำดับ และconnection collaction ผมเลือก เป็น utf_8_unicode_ci อ่ะครับ
ผิดถูกประการใดขออภัยด้วยน่ะครับ อยากได้คำแนะนำ มือใหม่หัดเขียนครับ นั่งบ้ามา2วันแระครับ ยังแก้ไม่ได้ งานไม่เดินเลยจิงๆๆ
ขอความเมตตากรุณาหน่อยครับ
0

#11 User is offline   boybdream 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 7
  • Joined: 21-April 08

Posted 24 May 2008 - 06:12 AM

ไม่เจอกระทู้นี้คงสงสัยไปอีกนานเลยครับ กระจ่างแล้วครับวันนี้ ติดตรง UTF8 กะ UTF-8 นี่เอง บ้าจิง ๆ :D

ขอบคุณมากครับ
0

#12 User is offline   teayza31 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 16
  • Joined: 16-June 09

Posted 23 June 2009 - 03:46 PM

ขอบพระคุณมากครับ งง และ สงสัยมานานละ กระจ่างสักที
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users