|
|
|
mssql 2005 ไม่แสดงข้อมูลภาษาไทย รบกวนผู้รู้ช่วยตอบด้วยนะค่ะ พยายามแก้แล้วแต่ไม่ได้จริงๆๆค่ะ |
|
|
|
|
|
|
|
การที่จะบันทึกผมว่านะครับ ทำการแปลงอักขระก่อนดีกว่าครับ ให้เป็น UTF8 ก็ได้ครับ
|
|
|
|
|
Date :
2010-07-06 11:45:28 |
By :
SOUL |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ php หรือเปล่าคะ
ลองเอา function นี้ไปใช้ดู เป็นการแปลง จาก tis620 เป็น utf8 และ จาก utf8 เป็น tis620
Code (PHP)
<?php
$__tis620 = range(0xa1, 0xff);
$__tis620[] = 0xa0;
array_walk($__tis620, "to_char");
$__utf8 = range(0xe01, 0xe5f);
$__utf8[] = 0xa0;
array_walk($__utf8, "to_unicode");
function tis620_utf8($str) {
global $__tis620, $__utf8;
if (function_exists("array_combine")) {
$str = strtr($str, array_combine($__tis620, $__utf8));
} else {
$str = strtr($str, _array_combine($__tis620, $__utf8));
}
return $str;
}
function utf8_tis620($str) {
global $__tis620, $__utf8;
if (function_exists("array_combine")) {
$str = strtr($str, array_combine($__utf8, $__tis620));
} else {
$str = strtr($str, _array_combine($__utf8, $__tis620));
}
return $str;
}
function to_char(&$item, $key) {
$item = chr($item);
}
function to_unicode(&$item, $key) {
$item = codepoint_utf8($item);
}
function codepoint_utf8($codepoint) {
$ascii = "";
if ($codepoint < 0x80) {
$ascii .= chr($codepoint);
} elseif ($codepoint < 0x800) {
$ascii .= chr(0xc0 | ($codepoint >> 6));
$ascii .= chr(0x80 | ($codepoint & 0x3f));
} elseif ($codepoint < 0x10000) {
$ascii .= chr(0xe0 | ($codepoint >> 12));
$ascii .= chr(0x80 | ($codepoint >> 6 ) & 0x3f);
$ascii .= chr(0x80 | ($codepoint & 0x3f));
} else {
$ascii .= chr(0xf0 | ($codepoint >> 18));
$ascii .= chr(0x80 | ($codepoint >> 12 ) & 0x3f);
$ascii .= chr(0x80 | ($codepoint >> 6 ) & 0x3f);
$ascii .= chr(0x80 | ($codepoint & 0x3f));
}
return $ascii;
}
function _array_combine($k, $v) {
$output = array();
for ($i = 0; $i < count($k); $i++) {
$output[$k[$i]] = $v[$i];
}
return $output;
}
?>
เรียกใช้
function tis620_utf8($str) คือ แปลงจาก tis620 เป็น utf8
function utf8_tis620($str) คือ แปลงจาก utf8 เป็น tis620
ตัวอย่างการเรียกใช้
Code (PHP)
$text=tis620_utf8("ข้อความ");
//หรือ
$text=utf8_tis620("ข้อความ");
อาจเป็นการแก้ปัญหาที่ปลายเหตุ
แต่ก็ลองดูนะคะ
|
|
|
|
|
Date :
2010-07-06 11:56:44 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณสำหรับทุกคำตอบ แต่ยังแก้ไม่ได้เลยค่ะ
|
|
|
|
|
Date :
2010-07-08 10:25:36 |
By :
nana3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็เป็น
แต่ตอนนี้เปลี่ยนมาใช้ ODBC connect
แล้วใช้ tis620_to_utf8(field)
จึงใช้ได้ปกติครับ
ตอน Update ก็ update table set filed=N'utf8_to_620(xxxxxx)';
ต้องใส่ N นำหน้าด้วยนะ
|
|
|
|
|
Date :
2013-04-08 16:50:05 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|