|
|
|
ช่วยด้วยค่ะ ติดมาหลายวันแล้ว ทำตามหลายวิธีแล้วค่ะ php select ข้อมูล จาก sql server2008 r2 ภาษาไทย แต่แสดงเป็น ????????? |
|
|
|
|
|
|
|
ทำตามในส่วน head ตามที่พี่แนะนำแล้วค่ะ แต่ไม่ได้
หนูกำหนด Data Type เป็นแบบ varchar() ได้ไหมค่ะ
หรือมีวิธีแก้อื่นไหมค่ะ
|
|
|
|
|
Date :
2016-06-29 19:15:50 |
By :
tan_zeeza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N เป็นการกำหนดให้ใช้อักษรพิเศษจำพวกที่ต้องใช้ unicode ในการกำกับภาษา
(ใช้จำนวน byte มากกว่า 1 ) เมื่อไม่ได้กำหนดชนิดข้อมูลให้ถูกต้อง ก็จะแสดง ??? ออกมา
อักขระที่มี 4High = 0 ค่าของไบต์ น้อยกว่า 16 (ภาษาไทย unicode จะขึ้นต้น 0E?? 2 ไบต์ )
ที่นี้ถ้าคุณกำหนดเป็น varchar คุณต้องใช้ coddpage เป็น window874
ซึ่งจะใช้ 1 ไบต์ในการเก็บข้อมูลแต่ละอักษร และต้องทำการคอนฟิก อะไรต่างๆอีกมาก
ผมลืมไปแล้วด้วย และไม่แนะนำให้ทำเพราะ เวปเพจเขาใช้ unicode แสดงภาษา กันหมดแล้ว
ซึ่งยังไงก็ต้องเปลี่ยน ก็เปลี่ยนมันตอนนี้เลยดีกว่าครับ ใช้ unicode ในการเก็บข้อมูล
|
|
|
|
|
Date :
2016-06-30 05:30:41 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
function tis620_to_utf8($text) {
$utf8 = "";
for ($i = 0; $i < strlen($text); $i++) {
$a = substr($text, $i, 1);
$val = ord($a);
if ($val < 0x80) {
$utf8 .= $a;
} elseif ((0xA1 <= $val && $val < 0xDA) || (0xDF <= $val && $val <= 0xFB)) {
$unicode = 0x0E00+$val-0xA0; $utf8 .= chr(0xE0 | ($unicode >> 12));
$utf8 .= chr(0x80 | (($unicode >> 6) & 0x3F));
$utf8 .= chr(0x80 | ($unicode & 0x3F));
}
}
return $utf8;
}
|
|
|
|
|
Date :
2016-06-30 09:17:57 |
By :
compiak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT N'ภาษาไทย'
|
|
|
|
|
Date :
2016-06-30 13:10:29 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หนูทำตามที่พี่ๆบอกแล้วนะค่ะ ยังไม่ได้เลยค่ะ nvarchar ก็ไม่ได้ค่ะ
database sql server ค่ะ ส่วน design
ข้อมูลใน table ค่ะ
Code (PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>fontthai</title>
</head>
<body>
<?php
session_start();
ob_start();
$Server = ".....";
$User = ".....";
$Pass = ".....";
$DB = "fontthai";
$connectserver = mssql_connect($Server,$User,$Pass)or die(mssql_error());
$connectdb = mssql_select_db($DB,$connectserver)or die(mssql_error());
mssql_query("SET NAMES UTF8");
$strSQL = "SELECT * FROM fontthai";
$objQuery1= mssql_query($strSQL) or die (mssql_error());
$num = mssql_num_rows($objQuery1);
$i = 0;
while($obResult = mssql_fetch_array($objQuery1))
{
$i++;
echo $i;
echo $obResult["namevarchar"];
echo "//";
echo $obResult["namenvarchar"];
echo "//";
echo $obResult["namenchar"];
echo "//";
echo $obResult["nametext"];
echo "//";
echo $obResult["namentext"];
echo "<br>";}
?>
</body>
</html>
<?php
ยังโชว์???????????????
|
ประวัติการแก้ไข 2016-07-02 14:58:29
|
|
|
|
Date :
2016-07-02 14:50:17 |
By :
tan_zeeza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ini_set('mssql.charset', 'UTF-8');
|
|
|
|
|
Date :
2016-07-02 15:05:35 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใส่แล้วเปลี่ยนจาก โชว์ ?????????????? เป็นแบบนี้ค่ะ
|
|
|
|
|
Date :
2016-07-02 15:20:04 |
By :
tan_zeeza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณที่กลับมาเฉลยสิ่งที่ทำได้ครับ +1
|
|
|
|
|
Date :
2016-07-02 17:16:02 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2016-07-02 21:20:08 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|