A-AA+then

ปรึษาหน่อยคับ ผมติดปัญหา โพสข้อมูลลง DB บน server แล้วเป็น ?????

1,039
คือ เวลาอัพไฟลขึ้นโฮสแล้ว พอเวลาโพสข้อมูลเป็นภาษาไทย ละกดบันทึกลงแล้ว กลับเป็น ??????????????? 

ทั้ง ๆ เวลาทำใน คอมเรามันไม่เป็น มันก็ปกติ ผมก็ใช้ utf8_general_ci นะคับ จะแก้ยังไงดีคับ

วานถามผู้รู้คับ ขอบคุณคับ 

ผมใช้ ฟังชั่นเชื่อมต่อ แบบนี้ไม่รู้ ถูกหรือป่าว


    function connectdb($db_name="database",$user="username",$pwd="password"){
    $this->database = $db_name;
    $this->username = $user;
    $this->password = $pwd;
    $this->connect_db = mysql_connect ( $this->host, $this->username, $this->password ) or $this->_error();
    //$this->connect_db = mysql_pconnect ( $this->host, $this->username, $this->password ) or $this->_error();
    $this->db = mysql_select_db ( $this->database, $this->connect_db) or $this->_error();
    mysql_query("set name utf8"); 
    mysql_query("set character set utf8"); 
    return true; 
    }
     

5 ความคิดเห็น

    SET NAMES UTF8 ครับ
    
    ส่วน set charset ไม่ต้องครับ ที่เหลือคือ ทุกอย่างต้องเป็น UTF-8 ทั้งหมดครับ ไม่ว่าจะเป็น DB, Script หรือ อื่นๆ

1

คือเอาส่วนนี้ออกใช่ไหมคับ
mysql_query("set name utf8");
คราวนี้เอาออก เป็น ??????????? หมดเลย 
2

พอเอา mysql_query("set character set utf8"); ออกก็เป็นเหมือนเดิม
3

คุณคับ ลองทำดูแล้วคับ ตอนนี้ โพสเป้นภาษาไทยได้แล้ว แต่ ข้อมูลเก่า ที่ดึงมา มันเป็น ????? หมดเลย ต้องแก้ตรงใหนครับ
4

55++

ถ้าไม่เยอะก็ ลบไปเถอะครับ แต่ถ้าต้องการเก็บไว้ อาจต้องทำหลายอย่าง หรือ อาตต้องทำเพียงอย่างเดียวคือ แปลงฐานข้อมูลเก่าให้เป็น UTF-8 ก่อน

ขั้นตอนการแปลง
1.export ออกมาก่อน โดยใช้ charset เดิม ที่สามารถอ่านและแสดงผลได้ ตามระบบเดิม
2.แปลงไฟล์ที่ export เป้น utf-8
3.นำไฟล์ที่เป็น UTF-8 กลับเข้าไปใส่ยังฐานข้อมูลใหม่ที่เป็น UTF-8

tool ที่ใช้งานผมก็เคยมีนะ ลองหาดูบนเว็บ UTF-8
5
^