Web UTF-8編碼傳給服務器後亂碼:中英文支持技術方案

 

1 純中英文支持技術方案(已開發通過驗證)

    優勢:

1           該技術方案爲真正意義上的中英文支持。

2           可與中文windows與第三方FTP(SSH)客戶端的替代使用,它們默認採用GBK字符集。

環境:

1         Linux系統需設置字符集採用GBK編碼.

操作方法:編輯/etc/bash.bashrc,在文件結尾加上這樣一行:
export LANG=zh_CN.GBK。重新啓動

2         服務器端的JAVA虛擬機需要中文環境變量。

操作方法:部署的Linux環境爲支持中文字符集。在其上啓動即可

3         顯示網頁編碼爲UTF-8

不足:

1         需要改變搭載服務器的語言編碼,可能會影響在之前安裝的其他支持中文的平臺。因爲某些平臺的中文已經是根據原先編碼轉換後的utf-8編碼

2         不支持GBK以外字符集。

3         很多客戶端命令行不支持中文。

4         中文不被其他科學計算平臺支持。

應用範圍:

1         需要支持中文windows與其他中文FTP(SSH)客戶端的自由交互與統一。

2         需要支持中文存儲功能。

3         中文可以被其他平臺直接解讀。

測試:

    該技術方法功能測試及運行良好。

 

2 多語言替代支持技術方案(已開發正在使用)

      優勢:

1         該技術爲替代非ASCII的多語言替代技術,將多語言、空格、符號表述爲utf-8編碼或者其他規則的編碼,統一編碼

2         替代實際的多語言將不再受主機環境影響,在存儲中爲替代語言存儲。

  環境:

1         Linux環境語言編碼爲支持ASCII的任何平臺

2         需要客戶端與服務端協商解碼和轉碼支持。

不足:

1           替代字符會比原先增加存儲空間1/3

2           非英文字符會顯示爲替代字符,用命令行登錄後造成一定程度的閱讀困難。

3           轉換需要額外開發代碼並增加cpu開銷,但是都可以轉嫁到客戶端中完成。

4           不可與其他ftp客戶端除英文外的字符文件替代使用。

應用範圍:

1           不支持多語言或者空格文件的主機環境

2           需要統一語言的環境

測試:

1         該技術功能測試爲可行,可利用Java API中base64和uri編碼配置

2 利用url編碼技術的測試結果(英文不變,空格用+,其他字符用%和8位16進制編碼表示)

1)字符串:測試  eng lish 中文和空     格 _-

轉換後:

%E6%B5%8B%E8%AF%95++eng+lish+%E4%B8%AD%E6%96%87%E5%92%8C%E7%A9%BA+++++%E6%A0%BC+_-+

恢復後: 測試  eng lish 中文和空     格 _-

 

2)字符串:newFOLDER

轉換後: newFOLDER

恢復後: newFOLDER

 

3)字符串:%+%

轉換後: %25%2B%25

恢復後: %+%

 

4)字符串:測試  eng lish 中文和空     格 _-

   轉換後: (不轉換)

恢復後: 測試  eng lish 中文和空     格 _-

 

3 總結:

1           如果主機環境支持中文,將使用第1種技術方案開發效率最高。

2           如果主機環境不支持中文或空格,將使用第2種技術可以替代支持中文。

3           打包混合支持模式,由應用程序配置決定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章