UTF-8 เป็นคำตอบสุดท้่าย เพื่อให้การใช้ภาษาไทยกับ PHP และ MySQL ใช้งานได้อย่างสมบูรณ์
การสร้างฐานข้อมูลใน MySQL
ให้ตั้งค่าดังต่อไปนี้
- Default CHARSET = utf8
- COLLATE = utf8_unicode_ci
ตัวอย่างเช่น
CREATE TABLE brand ( pk_brand int(5) NOT NULL auto_increment, brand varchar(250) collate utf8_unicode_ci NOT NULL, brand_logo varchar(200) collate utf8_unicode_ci NOT NULL, website varchar(200) collate utf8_unicode_ci default NULL, PRIMARY KEY (pk_brand) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
แล้วทำไมจึงไม่ใช้ utf8_general_ci? อ่านได้ที่นี่
การเชื่อมต่อจาก PHP ไปยัง MySQL
หลังจากที่เชื่อมต่อกับฐานข้อมูลแล้วให้ส่ง query ต่อไปนี้ด้วย (ทำแค่ครั้งเดียว)
- set NAMES utf8
ขอให้สังเกตว่า ใช้ utf8 ไม่ใช่ utf-8 ตัวอย่างเช่น
<?php // Database connection for abstract $dsn = 'mysql://username:password@localhost/database'; $mdb2 =& MDB2::factory($dsn); if (PEAR::isError($mdb2)) { die ($mdb2->getMessage()); } // set fetchmode $mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); $mdb2->query('set NAMES utf8'); ?>
การเขียน META TAG ใน HTML Code
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello!</title>
</head>
🙂