国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

網頁語言編碼及asp亂碼問題解決方案

2020-07-27 13:09:21
字體:
來源:轉載
供稿:網友
最近公司有一個日文項目,由于之前使用的是自己開發的中文CMS,并沒有將語言包分離,在網站建設調試過程中出現了令人頭疼的亂碼問題。

亂碼出現的原因 

由于各個字符編碼的儲存空間不一樣,所以當使用不同的字符讀取數據時,當字符空間過小,就不能正常顯示了。

比如說中文字符的字符集一般是gb2312,如果用utf-8強制讀取改變gb2312的字符,就有可能出現亂碼。因為utf-8的字符集儲存空間大于gb2312,當使用utf-8讀取時,有些字符gb2312的編碼中是不存在的,不存在的字符自然會出現亂碼了。對于靜態文件來說,如果文件的儲存編碼和網頁中編碼設置(charset)不一致的話,由于以上原因就會出現亂碼問題。

以上是對于亂碼問題的簡單分析,在解決現有問題時有涉及到了asp對國際化的支持。

涉及到三個函數: @CODEPAGE,Response.CodePage,Session.CodePage

下面是MSDN中的一段話。

Setting @CODEPAGE explicitly affects literal strings in a single response. Response.CodePage affects dynamic strings in a single response, and Session.CodePage affects dynamic strings in all responses in a session.

這三個函數都可以設置asp的編碼,其中 @CODEPAGE 相當于php中的header,必須在文檔的開始發出。

在中文操作系統的IIS中,默認的為gb2312,參數值是:”936″,而日文需要指定文檔CODEPAGE :

<%@ CODEPAGE=932 %> 

我們使用這個函數來設置文檔編碼具體的使用方法可以參考:http://www.cloudward.net/techLife/article.asp?id=490

現在應該沒有問題了吧?哇,問題仍然存在。考慮到SEO公司的asp程序全部需要生成靜態頁面。而生成的頁面全部是windows默認的ANSI,其中包含日文字符仍然會出現亂碼。這樣我們需要一個asp的函數,生成utf-8或者日文編碼的文件。 我們使用以下代碼完成:

Set objStream = Server.CreateObject(”ADODB.Stream”)
With objStream
.Open
.Charset = “utf-8″ //編碼,這里你可以改成任何編碼
.Position = objStream.Size
.WriteText=pencat //pencat 為寫入的數據
.SaveToFile server.mappath(”patch/flilename.html”),2 //生成文件路徑
.Close
End With
Set objStream = Nothing

經測試后亂碼的問題解決。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵阳市| 双流县| 贺兰县| 芜湖市| 东安县| 和顺县| 蕉岭县| 大厂| 巴彦淖尔市| 阜新| 潮安县| 手游| 理塘县| 思南县| 岳西县| 霍州市| 青神县| 和龙市| 巴里| 连云港市| 大田县| 南开区| 潮安县| 昌图县| 张家界市| 墨脱县| 福建省| 宝丰县| 屯昌县| 中牟县| 卫辉市| 西乌珠穆沁旗| 昂仁县| 桐庐县| 淳化县| 宝山区| 白水县| 曲麻莱县| 松阳县| 紫阳县| 泉州市|