รถเช่า ประเภทต่างๆ
รถเช่า จังหวัด
เมื่อย้าย Host แล้ว ภาษาไทยอ่านไม่ออก จะทำอย่างไร
วันที่: 20/10/2008
เวลา: 21:29:49
เพื่อนๆคงเคยเจอปัยหาย้าย web เปลี่ยน server ที่มี env ของ mysql ต่างกัน
เช่นที่เก่าใช้ encoding tis620 แต่ที่ใหม่ใช้ utf8 พอย้ายไป จะมีอาการ ภาษาไทย อ่านไม่ออกเป็นภาษาขอม หรือไม่ก็จะเป็น
?
อย่าเพิ่งตกใจไปครับ ถ้าคุณใช้ CMS อยู่ ผมมีวิธีแก้ง่ายๆ จะได้ไม่ต้องกังวลกับการย้ายเว็บอีกต่อไปครับ
สมมุติว่า เครื่องเก่าใช้ tis620 แต่เครื่องใหม่เป็น true utf8 ครับ
สีแดง คือชื่อไฟล์ที่ต้องแก้ไข
สีเขียว คือข้อความที่ต้อง search หา
สีน้ำเงิน คือข้อความที่ต้องเพิ่มเข้าไป
IPB
ips_kernel/class_db_mysqli_client.php
osCommerce
includes/functions/database.php
Moodle
lib/adodb/drivers/adodb-mysql.inc.php
Joomla
includes/database.php
SMF 1.1.3
index.php
Zen Cart
includes/classes/db/mysql/query_factory.php
PHP-Fusion 6
maincore.php
Word Press
wp-includes/wp-db.php
PHP infoBoard v.5
_infoboard5/class.global.php
ปล. ข้อมูลนี้ ผมรวบรวมมาจากประสบการณ์จริงในการย้ายเว็บให้ลูกค้า พันกว่าโดเมนครับ
เช่นที่เก่าใช้ encoding tis620 แต่ที่ใหม่ใช้ utf8 พอย้ายไป จะมีอาการ ภาษาไทย อ่านไม่ออกเป็นภาษาขอม หรือไม่ก็จะเป็น
?อย่าเพิ่งตกใจไปครับ ถ้าคุณใช้ CMS อยู่ ผมมีวิธีแก้ง่ายๆ จะได้ไม่ต้องกังวลกับการย้ายเว็บอีกต่อไปครับ
สมมุติว่า เครื่องเก่าใช้ tis620 แต่เครื่องใหม่เป็น true utf8 ครับ
สีแดง คือชื่อไฟล์ที่ต้องแก้ไข
สีเขียว คือข้อความที่ต้อง search หา
สีน้ำเงิน คือข้อความที่ต้องเพิ่มเข้าไป
IPB
ips_kernel/class_db_mysqli_client.php
Quote
/*if ( ! mysqli_select_db( $this->connection_id, $this->obj['sql_database'] ) )
{
$this->fatal_error();
return FALSE;
}*/
## Fix Thai ##
$this->query("SET NAMES 'tis620'");
{
$this->fatal_error();
return FALSE;
}*/
## Fix Thai ##
$this->query("SET NAMES 'tis620'");
osCommerce
includes/functions/database.php
Quote
if ($$link) mysql_select_db($database);
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $$link);
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $$link);
Moodle
lib/adodb/drivers/adodb-mysql.inc.php
Quote
function SelectDB($dbName)
{
$this->databaseName = $dbName;
if ($this->_connectionID) {
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'");
{
$this->databaseName = $dbName;
if ($this->_connectionID) {
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'");
Joomla
includes/database.php
Quote
$this->_table_prefix = $table_prefix;
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->_resource);
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->_resource);
SMF 1.1.3
index.php
Quote
// Show an error if the connection couldn't be made.
if (!$db_connection || !@mysql_select_db($db_name, $db_connection))
db_fatal_error();
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $db_connection);
if (!$db_connection || !@mysql_select_db($db_name, $db_connection))
db_fatal_error();
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $db_connection);
Zen Cart
includes/classes/db/mysql/query_factory.php
Quote
if (@mysql_select_db($zf_database, $this->link)) {
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->link);
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->link);
PHP-Fusion 6
maincore.php
Quote
mysql_connect($db_host, $db_user, $db_pass) or die("Unable to connect to SQL Server");
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'");
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'");
Word Press
wp-includes/wp-db.php
Quote
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'");
$this->ready = true;
@mysql_query("SET NAMES 'tis620'");
$this->ready = true;
PHP infoBoard v.5
_infoboard5/class.global.php
Quote
$this->dbname = $this->isconf["dbname"];
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->dbconnect);
## Fix Thai ##
@mysql_query("SET NAMES 'tis620'", $this->dbconnect);
ปล. ข้อมูลนี้ ผมรวบรวมมาจากประสบการณ์จริงในการย้ายเว็บให้ลูกค้า พันกว่าโดเมนครับ
ขอบคุณมากๆ ครับ พยายามมาตั้งนาน แก้ตามที่คุณบอกก็อ่านภาษาไทยได้เลย
บทความมีประโยชน์มาก