<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://www.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的話就可以。
    主站蜘蛛池模板: 18禁男女爽爽爽午夜网站免费| 日本人护士免费xxxx视频| 亚洲天堂一区在线| 免费理论片51人人看电影| 成人网站免费大全日韩国产 | 亚洲日本一区二区三区| 两性刺激生活片免费视频| 国产成人高清亚洲一区久久| 久久久久久亚洲av成人无码国产| 日本亚洲欧洲免费天堂午夜看片女人员| 99久久国产免费中文无字幕| 亚洲色一区二区三区四区 | 国产精品亚洲精品日韩电影| 亚洲国产精品久久久久婷婷老年| 免费黄网在线观看| 一级毛片不卡片免费观看| 羞羞网站在线免费观看| 亚洲国产成人手机在线电影bd| 在线日韩日本国产亚洲| 免费看www视频| 8x成人永久免费视频| 一区二区三区AV高清免费波多 | 久久久精品免费国产四虎| 美女视频黄.免费网址| 亚洲国产综合在线| 亚洲色精品88色婷婷七月丁香| 精品少妇人妻AV免费久久洗澡| 真实国产乱子伦精品免费| fc2成年免费共享视频18| 亚洲私人无码综合久久网| 亚洲网站在线播放| 亚洲日产韩国一二三四区| 国产成人在线观看免费网站 | 最近免费最新高清中文字幕韩国 | 含羞草国产亚洲精品岁国产精品| 中文字幕亚洲第一在线| 中文字幕第一页亚洲| 又黄又爽的视频免费看| 在线观看的免费网站| 美丽的姑娘免费观看在线播放| baoyu777永久免费视频|