首頁 >後端開發 >PHP問題 >php連結sqlserver中文亂碼怎麼辦?

php連結sqlserver中文亂碼怎麼辦?

coldplay.xixi
coldplay.xixi原創
2020-07-10 13:06:562828瀏覽

php連結sqlserver中文亂碼的解決方法:1、開啟sqlserver2005的查詢分析器;2、開啟【php.ini】,設定【mssql.charset = "utf-8"】;3、在php文件中加入相關代碼;4、進行輸入資料的轉碼。

php連結sqlserver中文亂碼怎麼辦?

php連結sqlserver中文亂碼的解決方法:

第一,開啟sqlserver2005的查詢分析器,code

SELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')

運行,查看結果,顯示“936”,說明該資料庫的編碼為GBK

附表如下:

936簡體中文GBK 

950 繁體中文BIG5 

#437 美國/加拿大英文 

932 日文 

#949 韓文 8

66 俄文 

65001 unicode UFT-8

第二,開啟php.ini,設定如下

#
mssql.charset = "utf-8"

 記得重啟伺服器! ! ! ! ! ! !

第三,在php檔案中加入下面程式碼,

<?php
   ……   header("content-Type: text/html; charset=utf-8");
   ……?>

第四,進行輸入資料的轉碼工作

#資料表test如下:

php連結sqlserver中文亂碼怎麼辦?

模擬提交的變數為type = '聯通', 對其進行轉碼

$type = &#39;联通&#39;;$type = (iconv(&#39;UTF-8&#39;,&#39;GBK&#39;,$type));

sql 語句如下,

$result= mssql_query("select * from dbo.test where type = &#39;$type&#39; and name = &#39;TOM&#39;", $conn);

第五,對查詢後的結果進行轉碼(核心程式碼如下)

$res[&#39;type&#39;] = iconv(&#39;GBK&#39;,&#39;UTF-8&#39;,$result[&#39;type&#39;]);echo $res[&#39;type&#39;];

檢視輸出:

聯通

顯示正常。

第六,將第五的程式碼進行更改調整如下:

$res[&#39;stname&#39;] = urlencode(iconv(&#39;GBK&#39;,&#39;UTF-8&#39;,$row[&#39;stname&#39;]));

然後,封裝JSON,發送出去

echo urldecode(json_encode($res));

相關學習推薦:PHP程式設計從入門到精通

#

以上是php連結sqlserver中文亂碼怎麼辦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn