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

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

coldplay.xixi
發布: 2023-03-02 09:54:01
原創
2845 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板