• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    從原理上解決Tomcat中文問題

    發布: 2007-6-22 07:38 | 作者:   | 來源: BLOG  | 查看: 61次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      很多開源軟件都有國際化和本地化的問題,其實國際化本沒有那么復雜,只是總有些公司希望通過拒絕國際標準來提高市場占有率,所以也就漸漸導致了現在的情況。很多開源軟件首要支持的便是UTF編碼,然后才是其他編碼。

    (by gashero)當然也有些不著調的軟件首選的是ISO-8859-1編碼,甚至是ASCII編碼。好了,下面先講講編碼,因為Tomcat也是一種不著調的軟件。

      常見的中文編碼有GB2312、GBK、GB18030等等,當然沒有包括繁體中文,這些編碼都是表示編碼,而并非是顯示編碼,F在越來越多的軟件,在其核心使用的顯示編碼或者說處理編碼,是Unicode編碼。Unicode編碼使用2字節表示了世界上幾乎所有的文字符號,作軟件的內部國際化處理再適合不過了。

      只是有些齷齪公司,為了商業目的,對內核的Unicode編碼API全部屏蔽,對外只提供本地化編碼。(by gashero)比如M$公司在中文軟件上就主推GBK編碼。

      還有一個問題就是用C/C++編寫的很老的軟件,字符串結束標志是'\0',而使用Unicode的話,會無故的截斷一些字符串。所以UTF-8就應運而生了,這種變長編碼既可以減小字符串的體積,也可以防止階段而傳輸Unicode編碼。

      至于傳統的英文編碼,最常見的就是兩種。一是ASCII,這種字符集高位為0,用7位表示數據。另一種是ISO-8859-1,每個字符1字節,用8位表示一個字符。

      Tomcat的內置編碼就是使用了ISO-8859-1。這也是本文最關鍵的一句,各種技巧的根本。

      由此可知由網頁所提交的數據就需要從ISO-8859-1解碼,如下是獲得提交參數number的例子。

      String number=new String(request.getParameter("number").getBytes("ISO-8859-1"),"UTF-8");

      這句就成功的實現了從ISO-8859-1向UTF-8編碼的轉換。

      有經驗的讀者應該遇到過通過<jsp:param>標簽傳遞網頁間參數時出錯的問題。(by gashero)接收到的字符串只要是無論如何都是一堆問號。其實這也是Tomcat內部編碼所導致的。如果可以順應Tomcat的內部編碼就可以傳遞中文字符串了。

      比如一個頁面間的內部重定向:

     。?xml:namespace prefix = jsp /><jsp:forward page="index.jsp">

     。糺sp:param name="name" value="<%=new String(" % 中文參數?.getBytes(?UTF-8?),?ISO-8859-1?)>" />

     。/jsp:forward>

      而在目的頁面接收參數的時候也需要再次從ISO-8859-1編碼轉換到UTF-8編碼。這樣就實現了在頁面之間傳遞中文參數。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>