小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

中文亂碼的常見問題解決及相關(guān)編碼知識 - Don‘t worry,be happy - C...

 iversion 2007-07-20
做java web開發(fā)是不是會遇到編碼問題,有網(wǎng)頁之間參數(shù)傳遞的,也有與數(shù)據(jù)庫存取有關(guān)的.下面是介紹相關(guān)內(nèi)容的文章.
從 漢化 到 國際化 
這是我們公司總結(jié)的一些關(guān)于中文亂碼問題的一些解決方案和經(jīng)驗(yàn)和大家分享!
遇到編碼問題主要是由于Tomcat服務(wù)器端接收request對象默認(rèn)是ISO_8859_1編碼方式,對于大量解決中文問題看到過添加Filter方式來統(tǒng)一解決.
其實(shí)在POST前可通過request.setCharacterEncoding("GBK");來解決.


對于Java由于默認(rèn)的編碼方式是 UNICODE,所以用中文也易出問題,常見的解決是
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);
//由于String類的構(gòu)造方法可以使用指定的編碼方式,缺省使用本地編碼.則getBytes 方法用于將中文字符以“ISO-8859-1”編碼方式轉(zhuǎn)化成字節(jié)數(shù)組,而“GBK” 是目標(biāo)編碼方式。

------------------------------------------------------------------------------------------------------------
下面是weblogic介紹的一些知識:
字符編碼簡介

ASCII:只提供對128個英文字符的支持
ISO8859-1:每個字節(jié)表示一個字符,一個中文字符表示成兩個字符,占兩個字節(jié)UTF-8:英文占一個字節(jié),中文占兩個或三個字節(jié)
GB2312:英文占一個字節(jié),中文占兩個字節(jié)
GBK:在GB2312基礎(chǔ)上提供了對擴(kuò)展中文字符的支持
Big5:臺灣使用的繁體中文的編碼,類似于GB2312


Javac命令行參數(shù)-encoding指定了java源文件使用的編碼
Java命令行參數(shù)-Dfile.encoding指定了class文件使用的編碼
JDK 1.4中引入了java.nio.charset package

============================================================
IE里的編碼行為
影響編碼的選項(xiàng):
1.“工具/Internet選項(xiàng)”菜單下的“高級/始終以UTF-8發(fā)送URL”(IE缺省設(shè)置)
2.HTML的head標(biāo)簽里的指定的content Type:<meta http-equiv=“Content-Type”content=“text/html”charset=“gbk”>
3.運(yùn)行瀏覽器的windows的區(qū)域設(shè)置,這影響本機(jī)的缺省編碼

對于post方式:
url采用UTF-8編碼,再作URL Encoding;
parameter部分(及url里帶的參數(shù))采用HTML head里指定的編碼(未指定使用本地缺省編碼),但不作URL Encoding;
post數(shù)據(jù)采用HTML head里指定的編碼,再作URL Encoding(content type為application/x-www-form-urlencoded 的情況下)


不選中“始終以UTF-8發(fā)送URL”時:
url、parameters和post數(shù)據(jù)均采用HTML head里指定的編碼(未指定使用本地缺省編碼);除了post數(shù)據(jù),其他部分均不做URL Encoding


附:HTTP 1.1 規(guī)范:RFC2396 :
uric = reserved | unreserved | escaped
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
unreserved =alphanum| mark mark = "-" | "_" | "." | "!" | "~" | "*" | "‘" | "(" | ")"
escaped = "%" hex hex hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f“

Servlet2.3關(guān)于HttpServletRequest的說明:
getRequestURI() : not decoded
getServletPath() : decoded

--------------------------------------------------------------------------------------------------------------------------
常見問題及解決:
Q:jsp里邊的所有中文在瀏覽器端顯示不正常:
A:<%@ pagecontentType=“text/html;charset=GBK“%>
為使瀏覽器能正確顯示中文,應(yīng)在HTML <HEAD> 部分增加:
<meta http-equiv="ContentType"content="text/html"charset="gbk">



Q:response.setContentType(“Application/msword”)返回的word文檔亂碼:
A:在content type中指定編碼:response.setContentType(“application/msword;charset=\”GBK\””)


其他編碼問題:對于Oracle數(shù)據(jù)庫:
使用select * from NLS_DATABASE_PARAMETERS;來查看數(shù)據(jù)庫的字符集設(shè)置
使用alter database character set utf8來修改
使用oci driver時,需要在客戶端設(shè)置正確的NLS_LANG環(huán)境變量



*注釋:l10n i18n都是縮寫:用的是英文單詞的首尾字母和其間字母個數(shù)
l10n: localization 本地化
i18n: internationalization 國際化



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=430712

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多