<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關于使用utf8編碼實現全球化的幾點困惑

    Posted on 2006-04-09 10:25 publisher luo 閱讀(3805) 評論(1)  編輯  收藏 所屬分類: java技術

    ??? 某日一時興起將我們的內容管理發布系統改成uft-8格式(即將所有頁面encode變為utf8,mysql字符集也變成uft-8)來支持能夠建立各種語言的網站(產品現在可以免費下載,網址為:http://sourceforge.net/projects/nodepublisher)。但是在修改程序過程中發現了一個問題,那就是在客戶端頁面提交過來的請求的編碼格式在服務器端無法獲知。如果提交頁面的<head>里面如果包含<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,漢字部分則以utf8編碼提交,如果沒有的話則以gbk編碼提交,而服務器端接受到的request無法判別編碼格式,取到的頭信息只有一些zh類似的說明,所以無法正確的將其轉換成正確的編碼格式。
    另一需要注意的是不能將取到的參數從ISO8859轉換成中文系統默認的字符集GBK,然后再轉換成utf8,這樣的話如果出現奇數漢字的話會導致部分漢字亂碼,原因在于漢字在GBK編碼中為2個byte,而在utf8編碼則為3個byte,如果是偶數個漢字,從ISO8859(tomcat默認得到的request都是ISO8859編碼)轉換成GBK,然后再轉換成ISO8859到還無妨,但是奇數個,最后一個byte不知道會怎么轉換成GBK的,然后再轉回到utf8時最后那個字符就會成為亂碼,我想可能是跟String類里面的拆分char的方法有關,不知道誰有更加明確的分析和解釋。
    再一數據庫方面使用mysql5,設置成utf8初始化數據腳本漢字轉換成uft8,一切正常。后來無意將數據庫轉換成GBK編碼,竟然程序運行也正常,后來經過測試將mysql設置成gbk,然后執行初始化sql腳本,漢字編碼格式為GBK,程序運行依然正常。不明白其中的原由。

    Feedback

    # re: 關于使用utf8編碼實現全球化的幾點困惑  回復  更多評論   

    2006-04-09 13:37 by thinkbase
    mysql的原因, 應該是數據庫jdbc驅動會自己進行編碼的轉換; 至于有些頁面提交的是UTF-8, 有些是GBK, 為什么不把所有頁面都加上"<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"?

    posts - 9, comments - 27, trackbacks - 0, articles - 19

    Copyright © publisher luo

    主站蜘蛛池模板: 国产成年无码久久久免费| 欧美亚洲国产SUV| 日本免费中文字幕| 精品久久香蕉国产线看观看亚洲| 在线观看亚洲免费| 国产zzjjzzjj视频全免费| 亚洲高清国产拍精品熟女| 免费毛片网站在线观看| 亚洲精品色播一区二区| 永久免费av无码网站大全| 亚洲欧美日韩一区二区三区| 国产亚洲福利一区二区免费看| 成人婷婷网色偷偷亚洲男人的天堂| 又爽又高潮的BB视频免费看| 日韩国产精品亚洲а∨天堂免| 免费一级毛片在线播放不收费| 国产大片免费天天看| 亚洲va在线va天堂va四虎| 国产成人午夜精品免费视频| 亚洲综合国产成人丁香五月激情 | baoyu777永久免费视频| 亚洲AV无码一区二区三区系列| 91人人区免费区人人| 日韩亚洲产在线观看| 国产乱子伦精品免费无码专区| 一本到卡二卡三卡免费高| 亚洲av无码专区国产乱码在线观看| 2020因为爱你带字幕免费观看全集| 2020天堂在线亚洲精品专区| 日本免费人成黄页在线观看视频 | 蜜桃视频在线观看免费网址入口| 亚洲AV无码专区在线电影成人| 亚洲中文字幕成人在线| 日韩内射激情视频在线播放免费| 亚洲人成色4444在线观看| 亚洲人妻av伦理| 97热久久免费频精品99| 午夜成人无码福利免费视频| 久久亚洲AV无码精品色午夜| 免费一看一级毛片全播放| 在线免费中文字幕|