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

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

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

    posts - 36, comments - 419, trackbacks - 0, articles - 0
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    問(wèn)題:
                項(xiàng)目在本機(jī)開(kāi)發(fā)編譯打包后發(fā)布到法國(guó)的服務(wù)器,代碼中的中文全部亂碼,就算是最簡(jiǎn)單的代碼System.out.println("中文"),打印出來(lái)的也是亂碼。

          代碼在本地的服務(wù)器測(cè)試都正常。

          法國(guó)服務(wù)器的環(huán)境:window 2003 中文版。

    解決:

               在網(wǎng)友imasmallbird的指引下,發(fā)現(xiàn)是2個(gè)服務(wù)器的file.encoding的不同,本地服務(wù)器是GBK,而法國(guó)服務(wù)器是Cp1252,所以會(huì)產(chǎn)生亂碼。

       把法國(guó)服務(wù)器的區(qū)域設(shè)置改成中國(guó)后,file.encoding就變成GBK,這樣可以解決這個(gè)問(wèn)題,但因?yàn)楹芏嘣虿荒苤苯痈膮^(qū)域設(shè)置,比如改了區(qū)域設(shè)置后時(shí)間就不是法國(guó)時(shí)間。

       目前解決辦法如下:
              1. 本地編譯打包不用變,本地編譯采用的是GBK編譯的(默認(rèn)采用系統(tǒng)字符集編譯)

              2. 在法國(guó)服務(wù)器的tomcat上加上JAVA的啟動(dòng)參數(shù) -Dfile.encoding=GBK

    重啟tomcat,一切正常了。

    解決了該問(wèn)題后,順便找了些JAVA的中文亂碼的資料看了下,簡(jiǎn)單的總結(jié)下:

           從Java 源代碼到得到正確的結(jié)果,要經(jīng)過(guò) “Java 源代碼-> Java 字節(jié)碼-> 虛擬機(jī)->操作系統(tǒng)->顯示設(shè)備”的過(guò)程。在上述過(guò)程中的每一步驟,我們都必須正確地處理中文的編碼,才能夠使最終顯示正確的結(jié)果。

           "Java 源代碼-> Java 字節(jié)碼":該階段就是調(diào)用javac 進(jìn)行編譯的階段,javac默認(rèn)采用系統(tǒng)字符集,比如我們本地機(jī)器急就是GBK,如果想用其他的編碼,比如UTF-8,可以加上 -encoding UTF-8

          "Java 字節(jié)碼-> 虛擬機(jī)->操作系統(tǒng)" :該階段首先需要JRE或者JDK支持多語(yǔ)言(下載JRE的時(shí)候會(huì)讓你選擇英文版還是多語(yǔ)言版),然后就是虛擬機(jī)啟動(dòng)的時(shí)候使用什么字符集,默認(rèn)也是采用當(dāng)前系統(tǒng)的字符集,如需要修改字符集,加上JAVA的啟動(dòng)參數(shù),-Dfile.encoding=GBK

          "操作系統(tǒng)->顯示設(shè)備":該階段主要就是需要操作系統(tǒng)支持顯示中文就可以,就是安裝了中文字體。

          看到這里后重新看我們的亂碼問(wèn)題,我們?cè)诒镜鼐幾g(Java 源代碼-> Java 字節(jié)碼 階段)默認(rèn)采用了GBK字符集,而"Java 字節(jié)碼-> 虛擬機(jī)->操作系統(tǒng)" 階段是在法國(guó)服務(wù)器上進(jìn)行,也是采用了默認(rèn)的字符集,但這里的默認(rèn)字符集確實(shí)Cp1252,因字符集不一致,所以就會(huì)亂碼。

    PS:以上屬于個(gè)人理解,個(gè)人水平有限,如說(shuō)的有問(wèn)題,還請(qǐng)大蝦們指點(diǎn)。



    [作者]:BearRui(AK-47)
    [博客]: http://m.tkk7.com/bearrui/
    [聲明]:本博所有文章版權(quán)歸作者所有(除特殊說(shuō)明以外),轉(zhuǎn)載請(qǐng)注明出處.
    英雄,別走啊,幫哥評(píng)論下:  

    精彩推薦 好文要頂 水平一般 看不懂 還需努力

    評(píng)論

    # re: JAVA 不同區(qū)域服務(wù)器引起的亂碼解決。  回復(fù)  更多評(píng)論   

    2009-10-26 11:40 by 淘寶網(wǎng)首頁(yè)
    是采用了默認(rèn)的字符集,但這里的默認(rèn)字符集確實(shí)Cp1252,因字符集不一致,所以就會(huì)亂碼

    # re: JAVA 不同區(qū)域服務(wù)器引起的亂碼解決。  回復(fù)  更多評(píng)論   

    2009-10-29 09:54 by admin
    一個(gè)tomcat上部署一個(gè)項(xiàng)目還好,如果多個(gè)項(xiàng)目,一個(gè)是法語(yǔ)的,一個(gè)中文的,如何解決

    # re: JAVA 不同區(qū)域服務(wù)器引起的亂碼解決。[未登錄](méi)  回復(fù)  更多評(píng)論   

    2009-10-29 10:17 by lazy
    不知道事先采用utf8會(huì)不會(huì)避免這個(gè)問(wèn)題

    # re: JAVA 不同區(qū)域服務(wù)器引起的亂碼解決。  回復(fù)  更多評(píng)論   

    2009-10-30 23:27 by BearRui(AK-47)
    @admin

    這種情況只能試試這個(gè)方法:

    在項(xiàng)目中建1個(gè)listener,在應(yīng)用啟動(dòng)的時(shí)候,設(shè)置一個(gè)下面的代碼:
    設(shè)置

    System.setProperty("file.encoding", "你想要的編碼");

    這個(gè)就可以不同的項(xiàng)目設(shè)置不同的file.encoding了。

    # re: JAVA 不同區(qū)域服務(wù)器引起的亂碼解決。  回復(fù)  更多評(píng)論   

    2009-10-30 23:27 by BearRui(AK-47)
    @lazy
    如果你的服務(wù)器本來(lái)就是UTF-8的話就可以。
    主站蜘蛛池模板: 久久久国产精品亚洲一区| 一二三四在线播放免费观看中文版视频 | 亚洲6080yy久久无码产自国产| 亚洲欧洲国产视频| 亚洲美女大bbbbbbbbb| 精品亚洲aⅴ在线观看| 亚洲首页在线观看| 亚洲图片校园春色| 亚洲黄页网在线观看| 亚洲国产夜色在线观看| 亚洲六月丁香婷婷综合| 亚洲综合偷自成人网第页色| 亚洲日本中文字幕天天更新| 亚洲精品乱码久久久久久蜜桃图片| 亚洲丶国产丶欧美一区二区三区| 亚洲AV永久无码精品网站在线观看| 亚洲av日韩综合一区久热| 黄床大片30分钟免费看| 岛国岛国免费V片在线观看| 久久毛片免费看一区二区三区| 免费萌白酱国产一区二区三区| 无码国产精品一区二区免费模式 | 激情小说亚洲图片| 一级美国片免费看| 免费网站看av片| 国产成人精品免费午夜app | 国产精品小视频免费无限app| a级毛片免费高清毛片视频| 久久久久久毛片免费播放| 4444www免费看| 国内自产拍自a免费毛片| 亚洲国产人成精品| 亚洲av综合avav中文| 亚洲人成片在线观看| 亚洲Av无码国产一区二区| 一区二区三区免费在线观看| 毛片在线全部免费观看| 无码日韩精品一区二区免费| 亚洲国产成人精品女人久久久 | 亚洲欧洲在线观看| 亚洲中文字幕AV每天更新|