<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

    主站蜘蛛池模板: 久久受www免费人成_看片中文| 国产亚洲精品美女久久久久 | 全免费毛片在线播放| 国产99在线|亚洲| 成年人免费视频观看| 一级免费黄色毛片| 亚洲综合区图片小说区| 国产一区二区三区在线免费观看| 久久精品成人免费观看97| 亚洲综合久久1区2区3区| 又粗又硬免费毛片| 99久久久国产精品免费牛牛| 亚洲老熟女五十路老熟女bbw| 中文字幕不卡亚洲| 免免费国产AAAAA片| 国产一级a毛一级a看免费人娇 | 特级做a爰片毛片免费看| 亚洲男人电影天堂| 亚洲中文字幕无码中文字在线| 四虎在线成人免费网站| 2022免费国产精品福利在线| 亚洲av乱码一区二区三区香蕉| 国产亚洲成人久久| 成年人免费网站在线观看| 免费国产成人午夜在线观看| 色婷婷亚洲一区二区三区| 亚洲综合色一区二区三区小说| 亚洲国产精品无码专区在线观看| 亚洲影视一区二区| 亚洲开心婷婷中文字幕| 国产乱子伦精品免费女| 黄色网址免费大全| 久久综合九色综合97免费下载| 黄色毛片免费在线观看| 久久久久se色偷偷亚洲精品av| 久久久久久久久亚洲| 日日噜噜噜噜夜夜爽亚洲精品| 国产成人免费一区二区三区| 67194成是人免费无码| 亚洲最大免费视频网| 久久香蕉国产线看免费|