1. 程式人生 > >ASP SQL SERVER 讀取中文亂碼

ASP SQL SERVER 讀取中文亂碼

在ASP程式中使用SQL SERVER作為資料庫時,如果是國外的伺服器或空間,可能造成讀取和寫入中文都是亂碼問題,比如godaddy伺服器空間的SQL SERVER資料庫就有中文亂碼問題。

那麼如何解決這個亂碼問題呢?有一次給個客戶除錯程式的時候發現了這個問題,後來由於時間原因,沒能親自解決這個問題。

可以嘗試如下這些方法去解決國外伺服器的網站空間中文亂碼問題:

亂碼解決方法一:

在頁面頂部宣告名稱空間CODEPAGE。

<%@LANGUAGE="VBScritp" CODEPAGE=936%>   簡體中文活碼網
<%@LANGUAGE="VBScritp" CODEPAGE=950%>   繁體中文
<%@LANGUAGE="VBScritp" CODEPAGE=65001%> UTF-8

亂碼解決方法二:

Session.CodePage=936    簡體中文
Session.CodePage=950    繁體中文
Session.CodePage=65001  UTF-8

亂碼解決方法三:

Response.Charset="GB2312" 簡體中文
Response.Charset="GBK"    繁體中文
Response.Charset="UTF-8"  UTF-8

亂碼解決方法四:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  簡體中文
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />     繁體中文
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   UTF-8

如上四種方法可基本解決一些國外伺服器上的網站空間的亂碼問題,如果你嘗試了這些方法,並且沒有解決,那麼只有一種可能,那就是空間上SQL SERVER不支援中文,當你寫入資料時,資料庫中存入的中文資料直接是???,就是無法存入中文,無論你用什麼編碼存入,都是這結果。原因只有一個,就是不支援中文。結果讀取並輸出的時候自然都是???。顯示你看到的都是連串的問號,而不是亂碼。

那麼該如何解決這樣的問題呢,辦法只有一個,無論你相信還是不相信,你只有把SQL SERVER資料庫轉換ACCESS資料庫,並更改ASP連線資料庫的檔案,改成連線ACCESS資料庫,並對程式做上面提到的四種亂碼處理,最後還要處理更改資料庫後程序上可能產生的資料庫相容問題,比如SQL語句、SQL關鍵字、資料庫函式等。