Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: ปัญหา ภาษาไทย กับ mysql (แสดงผลเป็น ????)

  1. #1
    Administrator asylu3's Avatar
    Join Date
    Jun 2000
    Location
    Thailand
    Posts
    3,557


    ปัญหา ภาษาไทย กับ mysql (แสดงผลเป็น ????)

    เป็นปัญหากวนใจผมมานานแล้วก็หวังว่าเพื่อนๆหลายคงคงจะเคยเจอ
    ปัญหาที่ว่านี้คือเมื่อเราทำการ insert data เก็บลงฐานข้อมูล ผ่านคำสั่ง mysql_query
    ภาษาไทยจะกลายเป็นเครื่องหมาย ????

    ในตอนแรกนั้นผมนึกว่าจะมีปัญหาเกี่ยวกับ charset= tis-620
    แต่ลองแล้วก็แก้ปัญหานี้ไม่ได้เลย หนทางหนึ่งที่ผมลองแล้วได้ผลคือ
    ก่อนทำการใช้ คำสั่ง mysql_query() ให้ทำการเพิ่ม คำสั่ง
    mysql_query("SET NAMES TIS620"); ไว้ก่อนหน้า
    จะช่วยแก้ปัญหาได้ หากเพื่อนมีวิธีอื่นที่ดีกว่านี้ก็แนะนำมาได้นะครับ

    สำหรับการแก้แบบอื่นผมไปเจอมา
    http://www.phpconcept.com/index.php?option...task=view&id=21
    เว็บนี้ละเอียดมาก

  2. #2
    Senior Member newsbot's Avatar
    Join Date
    Sep 2002
    Location
    Thailand
    Posts
    3,766


    Re: ปัญหา ภาษาไทย กับ mysql (แสดงผลเป็น ????)

    เสริมนิดนึงครับถ้าหากเจออาการ ??? ให้ลองเช็คที่ ไฟล์ต้นฉบับของ database ที่ใช้ dump ดูว่าเห็นตัวอักษรเป็นแบบไหนแล้วก็ charset ของแต่ละ table เป็นอย่างไร

    เช่น
    1. ถ้าเห็นตัวหนังสือของข้อความภาษาไทยแสดงเป็น
    xe0xb8xb2 (escape sequence) ก็แสดงว่าถูกต้องถ้าแสดงเป็นอย่างอื่นอาจจะทำให้การ dump ผิดพลาด

    2. ให้ดู syntax ของการสร้างตารางที่ด้านท้ายว่าเป็นแบบนี้หรือไม่
    ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;
    ถ้าใช้ให้ลองแก้เป็น
    ENGINE=MyISAM DEFAULT AUTO_INCREMENT=24 ;
    ดูว่าใช้ได้ไหม (dump ผ่านหรือเปล่า+ ภาษาไทยอ่านได้)
    ถ้าไม่ได้ให้แก้เป็น
    ENGINE=MyISAM ;
    ซึ่งถ้าเป็นแบบหลังนี้จากประสบการณ์ mysql จะ detect charset ของ table ให้เองแล้วก็แสดงผลได้ถูกต้อง
    clone 'em all

  3. #3
    Junior Member
    Join Date
    Sep 2005
    Location
    Thailand
    Posts
    4


    แบบนี้เคยเจอมาแ้ว้ว ง่ะ แล้วก้อแก้ได้แว้วว อิอิ
    [ i ] c z y : : Hosting น้องใหม่ไฟแรง [url="http://www.iczy.info"]http://www.iczy.info[/url]
    บริการ [url="http://www.thaihosttalk.com/th1/index.php?topic=8080.0"]IP Radio[/url] , [url="http://www.thaihosttalk.com/th1/index.php?topic=8457.0"]Web Hosting , Reseller Hosting [/url]ราคาถูกๆ ครับ
    จดทะเบียนวันนี้ [color=red]ฟรี!!! โดเมนเนม .com .net .org และ เพิ่ม ปริมาณการส่งข้อมูลให้ 10% ทุกรายการครับ หมดเขตสิ้นปีนี้ครับ[/color]
    ** [url="http://www.thaihosttalk.com/th1/index.php?topic=8457.0"]Hosting 1G 1500Baht / year { Free Domain Name!! }[/url]
    [color=red]สนใจ pm มา หรือ ฝากเบอร์ไว้ครับ +++ โทรกลับฟรี +++ ครับ[/color]

  4. #4
    Junior Member
    Join Date
    Feb 2007
    Posts
    5


    ขอบคุณครับ เจอปัญหานี้เมหือนกันตอนเปลี่ยนมาใช้ php5

  5. #5
    Golf
    Guest


    ผมใช้ ipb 2.2 import แล้วมันเป็น ??????????? จะต้องใส่ db connection ที่ไฟล์ไหน จุดไหนบ้างครับ

  6. #6
    Junior Member
    Join Date
    Jun 2007
    Posts
    5


    ของผมต้องใส่ทั้งหมดนี้เลยอะตอน search เป็นภาษาไทย

    SET character_set_client='utf8'
    SET character_set_results='utf8'
    SET character_set_connection='utf8'

    ไม่งั้นมันไม่ยอมให้ผ่าน ตอนแรกนึกว่าใส่บรรทัดเดียวก็หายแล้วอะ
    แถมบางที insert ยังต้องใส่อีกอะ

  7. #7
    Junior Member
    Join Date
    Jun 2007
    Location
    Phitsulok City
    Posts
    9


    นี่เป็นอีกวิธีนึงที่ค้นพบมานะครับ (พร้อมโค๊ดตัวอย่าง)

    ง่ายเลยนะแบบไม่ต้องไปคอนฟิกอะไรที่ php หรือ mysql
    ในไฟล์ dbconfig เพิ่ม
    --------------------------------------------------------------------------------
    <?
    $username = "root";
    $password = "password";
    $host="hostname";
    $db="mydb";
    mysql_connect($host,$username,$password);
    mysql_select_db($db);
    //เพิ่มแค่เนี้ย ก็ได้ละ ง่ายโคตร
    mysql_query("SET character_set_results=utf8");
    mysql_query("SET character_set_client=&#39;utf8&#39;");
    mysql_query("SET character_set_connection=&#39;utf8&#39;");
    mysql_query("collation_connection = utf8_thai_ci");
    mysql_query("collation_database = utf8_thai_ci");
    mysql_query("collation_server = utf8_thai_ci");

    ?>

    ลองดูนะครับ

  8. #8
    Junior Member
    Join Date
    Aug 2007
    Posts
    13


    ตอนใช้ mysql < 4.0 ไม่เคยเจอเลย แต่พอใช้ 4.1 ขึ้นไป ล่ะเจอ เลยครับ
    นั่งหาวิธีแก้ตั้งนาน ตอนนี้ เลยเปลี่ยน charset จาก utf8 เป็น UTF-8 หมดแล้วครับ

  9. #9
    Junior Member
    Join Date
    Sep 2007
    Posts
    21


    mysql_query("SET character_set_results=utf8");
    mysql_query("SET character_set_client=&#39;utf8&#39;");
    mysql_query("SET character_set_connection=&#39;utf8&#39;");
    mysql_query("collation_connection = utf8_thai_ci");
    mysql_query("collation_database = utf8_thai_ci");
    mysql_query("collation_server = utf8_thai_ci");
    [/b]
    วิธีนี้ใช้ได้จริง ๆ ครับ PHP5 + MySQL5 ไม่มีปัญหา
    [url]www.komkid.co.cc[/url]

  10. #10
    Junior Member
    Join Date
    Aug 2007
    Posts
    6


    แต่ก่อนเคยใช้แล้วมีปัญหา ต่อมาผมใช้ windows 874 และภาษา tahoma ทั้งหมด ก้ผ่าน

Page 1 of 2 12 LastLast

Similar Threads

  1. Replies: 0
    Last Post: 05-02-2009, 03:51 PM
  2. Replies: 0
    Last Post: 28-11-2007, 11:17 PM
  3. Replies: 1
    Last Post: 11-12-2006, 03:59 AM
  4. ปัญหา PHP กับ Delphi
    By asylu3 in forum PHP,ASP,Javascript, Html
    Replies: 0
    Last Post: 03-12-2004, 03:39 PM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •