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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

      在軟件系統(tǒng)中,由于存在著各種各樣的字符編碼問題,比如另我們非常頭痛的中文問題。因此,現(xiàn)在趨向于使用UTF-8編碼作為軟件中通過編碼格式,從而可以避免大多數(shù)字符編碼的問題。本文跟《80前》一文一樣,以Spring項目無關(guān),請“春迷”們自重、沒事勿擾,文中不足之處歡迎大家批評指教。

      在Java開發(fā)中,我們經(jīng)常使用Ant來編譯及打包項目。默認(rèn)情況下Ant會去調(diào)用一個名為build.xml文件,文件中定義了相關(guān)的單元及任務(wù)等,可以根據(jù)用戶命令執(zhí)行相應(yīng)的任務(wù)單元。
      比如,在很多開源項目如Spring、webwork、EasyJWeb、EasyDBO等,其根目錄下都有一個build.xml文件。
    在國外的開源項目中,build.xml文件中的內(nèi)容全部是英文字符,因此build.xml使用普通的ANSI或UTF-8或GBK都沒問題,也不會遇到字符編碼問題。而對于國產(chǎn)的開源項目EasyJWeb、EasyDBO來說,為了方便國內(nèi)的用戶,肯定在文件會包含一些中文說明。而默認(rèn)情況下包括中文字符,格式為ANSI的build.xml文件是無法正確運行的,這應(yīng)該跟本人所寫的Dom4j的原因類似。
      此時,我們需要把build.xml文件改成UTF-8格式,并指定xml文件的格式為utf-8。如下面是EasyJWeb開源項目中build.xml文件的部分內(nèi)容:
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="EasyJF" default="usage" basedir="." xmlns:artifact="urn:maven-artifact-ant">
    ?<property file="easyjfbuild.properties" />
    ?<!--目錄定義-->
    ?<property name="main.src.dir" value="${basedir}/src/main" />
    ?<property name="test.src.dir" value="${basedir}/src/test" />
    ?<property name="lib.dir" value="${basedir}/lib" />
    ?<property name="env.lib.dir" value="${lib.dir}/build/" />
    ?<property name="doc.dir" value="${basedir}/doc" />
    ?<property name="build.dir" value="${basedir}/build" />
    ?<property name="release.dir" value="${basedir}/release" />
    ?<property name="web.dir" value="${basedir}/webapps" />
    ?<property name="ide.dir" value="${basedir}/misc/ide" />
    ?<!--項目屬性-->
    ?<property name="project.provider.name" value="easyjf" />
    ?<property name="project.name" value="jweb" />
    ?<property name="project.author" value="?<property name="project.version" value="0.6" />
    ?<!--發(fā)布文件名-->
    ….
      這里的問題是如何建一個UTF-8格式的build.xml文件。
    錯誤的習(xí)慣:
      在通常情況下,我們習(xí)慣于使用windows下的記事本等工具直接編碼xml文件內(nèi)容,并另存為UTF-8格式,如下圖所示:
    ?
      這種方式建立的build.xml文件是不正確的,最讓人煩惱的是具有非常的不穩(wěn)定性。這個不穩(wěn)定性表現(xiàn)在一些系統(tǒng)下能正確使用,而一些系統(tǒng)下會出現(xiàn)類似如下的錯誤:

      D:\EasyJF\wlhy\bin>build.bat
      Buildfile: ..\build.xml
      BUILD FAILED
      D:\EasyJF\wlhy\build.xml:1: 缺少文件根組件
      Total time: 0 seconds
      請按任意鍵繼續(xù). . .
    ?
      這個錯誤也是EasyJF團(tuán)隊中的williamRaym在寫EasyJWeb的build腳本時發(fā)現(xiàn)的,而且后來又很多網(wǎng)友反映類似的錯誤,如當(dāng)前EasyJF下的iula 項目就存在這個問題:
    http://www.easyjf.com/html/bbs/20060814/1208824819851986.htm
      (也許是我的機(jī)器容錯性好,不會報錯,呵呵!)。
      
    正確的方法:
      前面說了,用記事本建立UTF-8格式的xml文件是不正確的,經(jīng)過我們多次實踐,正確的方法之一是使用Eclipse來建這個xml文件,在建立工程的時候需要把整個工程的字符集設(shè)置成為UTF-8,然后直接建立一個build.xml文件,默認(rèn)情況下該文件以UTF-8的格式保存。
      這樣建立起來的腳本文件,使用Ant的時候,不管build.xml中包含什么中文字符,都能正常運行。當(dāng)然,應(yīng)該還可以用其它的開發(fā)工具建立UTF-8格式的文件,還請大家來試驗。另外也可以用JAVA自己寫一個小程序來把ANSI格式的文件轉(zhuǎn)成UTF-8文件,這樣也沒問題。
    ?
    小結(jié):
      之所以很多開源項目的build過程中不會存在問題,是因為他的腳本文件中沒有包含中文字符或其它字符。面在國產(chǎn)開源項目中,由于存在中文注釋、說明等,所以在建立build.xml文件的時候需要作一些特殊的處理,使用UTF-8格式的文件。當(dāng)然,本文還重點提出了兩種建立UTF-8文件的方法,其中用記事本是不穩(wěn)定的,錯誤的;而用專業(yè)Java開發(fā)工具或JDK建立的腳本才是正確、穩(wěn)定的。
    (注:本文作者,EasyJF開源團(tuán)隊 大峽,轉(zhuǎn)載請保留作者聲明!)
    posted on 2006-08-21 11:44 簡易java框架 閱讀(1662) 評論(4)  編輯  收藏

    FeedBack:
    # re: “中文問題沒商量”之Ant中的中文問題  2006-08-21 12:47 Robin's Java World
    這樣的問題還用得了長篇大論嗎???  回復(fù)  更多評論
      
    # re: “中文問題沒商量”之Ant中的中文問題  2006-08-21 14:37 李李
    即使是文本編輯器也很少見用記事本來寫的,效率不高
    推薦高效的方法,用UltraEdit,F(xiàn)ile/文件-->Convert/轉(zhuǎn)換 這里你想怎么轉(zhuǎn)都可以  回復(fù)  更多評論
      
    # re: “中文問題沒商量”之Ant中的中文問題  2006-08-21 21:07 建議找本xml的入門讀物
    倒......
    在ant文件的xml注釋里搞個中文說明也要來擺一擺........  回復(fù)  更多評論
      
    # re: “中文問題沒商量”之Ant中的中文問題  2009-01-06 11:33 去死吧大陸人
    @建議找本xml的入門讀物

    回文的死大陸人 都愛自以為很厲害
    人家po這篇關(guān)你屁事  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一卡2卡3卡4卡5卡6卡| 最近免费字幕中文大全视频 | 免费无码又爽又刺激高潮| 亚洲AV无码乱码国产麻豆穿越| 日本高清免费中文在线看| 全部免费国产潢色一级| 久久精品国产亚洲av天美18| 日本免费一区尤物| 99亚洲男女激情在线观看| 免费人成视网站在线观看不卡| jizzjizz亚洲日本少妇| 亚洲国产精品成人AV无码久久综合影院| 亚洲6080yy久久无码产自国产 | 永久黄网站色视频免费| 久久久久亚洲精品无码网址色欲| 在线免费观看韩国a视频| 阿v视频免费在线观看| 亚洲国产日韩成人综合天堂| 4hu四虎免费影院www| 亚洲乱亚洲乱妇无码麻豆| 日韩免费视频一区二区| 亚洲精品国产免费| 亚色九九九全国免费视频| 亚洲国产精品无码第一区二区三区 | 国产精品视频免费一区二区| 亚洲国产欧美一区二区三区| 亚洲国产成人五月综合网| 野花香高清视频在线观看免费 | 伊人免费在线观看| 日木av无码专区亚洲av毛片| 18国产精品白浆在线观看免费| 亚洲av无码日韩av无码网站冲| 亚洲国产成人a精品不卡在线| 久久福利青草精品资源站免费| 亚洲区精品久久一区二区三区| 老司机永久免费网站在线观看| 成人精品综合免费视频| 亚洲最新视频在线观看| 日韩一区二区三区免费体验| 伊人久久大香线蕉免费视频| 亚洲一区在线视频|