亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

native2ascii Java的一個文件轉碼工具(properties文件漢字轉換)

2019-11-11 00:29:09
字體:
來源:轉載
供稿:網友

native2ascii

native2ascii.exe 是 java 的一個文件轉碼工具,是將特殊各異的內容 轉為 用指定的編碼標準文體形式統一的表現出來,它通常位于 JDK_home/bin 目錄下,安裝好 Java SE 后,可在命令行直接使用 native2ascii 命令進行轉碼。

背景

  在做Java開發的時候,常常會出現一些亂碼,或者無法正確識別或讀取的文件,比如常見的validator驗證用的消息資源(PRoperties)文 件就需要進行Unicode重新編碼。原因是java默認的編碼方式為Unicode,而計算機系統編碼常常是GBK等編碼。需要將系統的編碼轉換 為java正確識別的編碼問題就解決了。

使用方法

  native2ascii 工具將帶有本機編碼字符(非拉丁 1 和非單一碼字符)的文件轉換成帶有Unicode編碼字符的文件。 假設需要轉化的屬性文件為:D:/src/resources.properties(含有中文字符) ,轉化后的屬性文件為:D:/classes/resources.properties(中文字符統一轉化為Unicode) 那么使用如下命令  JAVA_HOME/bin/native2ascii -encoding GBK D:/src/resources.properties D:/classes/resources.properties

用法介紹

  如果應用系統是面向多種語言的,編程時就不得不設法解決國際化問題,包括操作界面的風格問題、提示和幫助語言的版本問題、界面定制個性化問題等?!∮捎贘ava語言具有平臺無關、可移植性好等優點,并且提供了強大的類庫,所以Java語言可以輔助我們解決上述問題。Java語言本身采用雙字節字符編碼,采用大漢字字符集,這就為解決國際化問題提供了很多方便。從設計角度來說,只要把程序中與語言和文化有關的部分分離出來,加上特殊處理,就可以部分解決國際化問題。在界面風格的定制方面,我們把可以參數化的元素,如字體、顏色等,存儲在數據庫里,以便為用戶提供友好的界面;如果某些部分包含無法參數化的元素,那么我們可能不得不分別設計,通過有針對性的編碼來解決具體問題。

JDK中自帶的native2ascii功能

  1、只轉換特定字符  在控制臺中可以輸入漢字回車后,就可以看到轉移后的字符了?! trl+C退出?! ?strong>2、轉換properties文件  native2ascii allMessages_zh_CN.input.properties allMessages_zh_CN.properties  將文件allMessages_zh_CN.input.properties編碼后輸出為allMessages_zh_CN.properties?! 榱朔奖鉷roperties文件的管理,建議純中文的配置文件用input命名。  3、反向單一properties文件  native2ascii -reverse allMessages_zh_CN.properties allMessages_zh_CN.txt  注意-reverse參數  4、批量反向所有的properties文件  JDK自帶的工具native2ascii可以將uncode編碼的文件轉換為本地編碼的文件,但是不能批量轉換文件。

JDK native2ascii工具用法

背景:在做Java開發的時候,常常會出現一些亂碼,或者無法正確識別或讀取的文件,比如常見的validator驗證用的消息資源(properties)文件就需要進行Unicode重新編碼。原因是java默認的編碼方式為Unicode,而我們的計算機系統編碼常常是GBK等編碼。需要將系統的編碼轉換為java正確識別的編碼問題就解決了。1、native2ascii簡介:native2ascii 是sun java sdk提供的一個工具。用來將別的文本類文件(比如*.txt,*.ini,*.properties,*.java等等)編碼轉為Unicode編碼。為什么要進行轉碼,原因在于程序的國際化。Unicode編碼的定義:Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。1990年開始研發,1994年正式公布。隨著計算機工作能力的增強,Unicode也在面世以來的十多年里得到普及。(聲明:Unicode編碼定義來自互聯網)。2、獲取native2ascii:安裝了jdk后,假如你是在windows上安裝,那么在jdk的安裝目錄下,會有一個bin目錄,其中native2ascii.exe正是。3、native2ascii的命令行的命名格式:native2ascii -[options] [inputfile [outputfile]]說明:-[options]:表示命令開關,有兩個選項可供選擇-reverse:將Unicode編碼轉為本地或者指定編碼,不指定編碼情況下,將轉為本地編碼。-encoding encoding_name:轉換為指定編碼,encoding_name為編碼名稱。[inputfile [outputfile]]inputfile:表示輸入文件全名。outputfile:輸出文件名。如果缺少此參數,將輸出到控制臺。 4、最佳實踐:首先將JDK的bin目錄加入系統變量path。在盤下建立一個test目錄,在test目錄里建立一個zh.txt文件,文件內容為:“熔巖”,打開“命令行提示符”,并進入C:/test目錄下。下面就可以按照說明一步一步來操作,注意觀察其中編碼的變化。A:將zh.txt轉換為Unicode編碼,輸出文件到u.txtnative2ascii zh.txt u.txt打開u.txt,內容為“/u7194/u5ca9”。 B:將zh.txt轉換為Unicode編碼,輸出到控制臺C:/test>native2ascii zh.txt/u7194/u5ca9可以看到,控制臺輸出了“/u7194/u5ca9”。 C:將zh.txt轉換為ISO8859-1編碼,輸出文件到i.txtnative2ascii -encoding ISO8859-1 zh.txt i.txt打開i.txt文件,內容為“/u00c8/u00db/u00d1/u00d2”。 D:將u.txt轉換為本地編碼,輸出到文件u_nv.txtnative2ascii -reverse u.txt u_nv.txt打開u_nv.txt文件,內容為“熔巖”。 E:將u.txt轉換為本地編碼,輸出到控制臺C:/test>native2ascii -reverse u.txt熔巖可以看到,控制臺輸出了“熔巖”。 F:將i.txt轉換為本地編碼,輸出到i_nv.txtnative2ascii -reverse i.txt i_nv.txt打開i_nv.txt文件,內容為“/u00c8/u00db/u00d1/u00d2”。發現轉碼前后完全一樣的。也就是說,等于沒有轉,或者說思想糊涂,對命名沒有理解。。G:將i.txt轉換為GBK編碼,輸出到i_gbk.txtnative2ascii -reverse -encoding GBK i.txt i_gbk.txt打開i_gbk.txt文件,內容為“/u00c8/u00db/u00d1/u00d2”。發現轉碼前后完全一樣的。也就是說,等于沒有轉,或者說思想糊涂,對命名沒有理解。H:將u_nv.txt轉碼到本地編碼GBK,輸出到控制臺C:/test>native2ascii -reverse -encoding ISO8859-1 i.txt熔巖從這個結果看,目標達到到了,編碼i.txt為ISO8859-1,轉為本地編碼后內容為“熔巖”。從這里應該意識到,native2ascii -reverse命令中-encoding指定的編碼為源文件的編碼格式。而在native2ascii 命令中-encoding指定的編碼為(生成的)目標文件的編碼格式。這一點非常的重要!切記!!繼續探索,新建文件12a.txt,內容“12axyz”。看看純字母數字的編碼又如何。I:將純字母數字的文本文件12a.txt轉換為Unicode編碼native2ascii 12a.txt 12a_nv.txt打開12a_nv.txt文件,內容為“12axyz”。繼續測試,轉為ISO8859-1編碼看看C:/test>native2ascii -encoding ISO8859-1 12a.txt12axyz結果還是沒有轉碼。從結果可以得出結論:對于純數字和字母的文本類型件,轉碼前后的內容是一樣的。5、總結:native2ascii 是一個非常的好轉碼工具,并且轉碼是可逆的!而其真正的含義并非本地編碼——>轉碼為ASCII碼,而是一個通用的文本文件編碼轉換工具。在做編碼轉換的時候有兩類指定編碼的情形,分別指輸出文件編碼和輸入文件編碼,具體可以看看最佳實踐部分。實際應用中:比如可以這樣利用native2ascii:native2ascii -encoding gbk temp.properties application_zh_CN.properties這里將根據一個臨時文件temp.properties輸出了application_zh_CN.properties,然后把application_zh_CN.properties中的文件內容替換這個臨時文件的內容就可以了.(以上是轉載的)JAVA本身就支持多國語言編碼,不需要寫任何程序,可以很簡單的 實現。 秘訣就是兩點:    1、所有HTML/jsp頁面全部采用UTF-8編碼    2、客戶端瀏覽器完全支持UTF-8編碼

  步驟:  1、首先把所有的HTML/JSP的ContentType都設為UTF-8    2、然后對于JSP程序中的非ASCII碼提示信息都不應該寫在程序里面,都應該放在  application.properties里面統一管理。    3、對HTML用native2ascii工具統一做一次處理,把HTML中的非ASCII碼都轉換為Unicode編碼?!   ?、針對不同的語言,寫不同的application.properties,比如說簡體中文是  application_zh_CN.properties,繁體中文是application_zh_TW.properties這樣,然后對這些配置信  息文件同樣用native2ascii工具處理一次,把非ASCII碼統統轉為Unicode編碼。    5、在Servlet的request.getCharacterEncoding()獲得客戶端的操作系統默認編碼,然后set到Struts  的HTTPsession的Locale中?!   K!現在不同的客戶訪問,就會顯示不同的語言版本了。你可以看看此時你的瀏覽器的字符集,就是  UTF-8?,F在你的網站和Google一樣了,嘿嘿,其實你有心的話,看看你的瀏覽器訪問Google的時候是  什么字符集吧    切記:所有的HTML/JSP都要設為UTF-8編碼,所有的文件中的非ASCII碼字符都要用native2ascii工具轉  為用ASCII表示的Unicode編碼。

native2ascii命令:

(native2ascii -encoding gb2312 ApplicationResources_xx_CN.properties

ApplicationResources_zh_CN.properties)

如果還有文件亂碼的話加過濾器就可以解決了!

轉自http://blog.csdn.NET/taking_wang/article/details/8199208


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人性生交大片免费观看嘿嘿视频| 欧美日韩国产精品一区| 欧美性极品少妇精品网站| 中文字幕亚洲无线码在线一区| 久久777国产线看观看精品| 日韩av一区二区在线| 午夜剧场成人观在线视频免费观看| 亚洲一区二区久久| 庆余年2免费日韩剧观看大牛| 日韩免费黄色av| 日本不卡视频在线播放| 4388成人网| 2021久久精品国产99国产精品| 国产亚洲精品久久久优势| 欧美成人一区二区三区电影| 欧美日韩裸体免费视频| 精品久久久香蕉免费精品视频| 欧美精品免费在线| 高清欧美一区二区三区| 亚洲区免费影片| 欧美xxxx做受欧美| 欧美日韩国产一区中文午夜| 国产日韩欧美夫妻视频在线观看| 成人情趣片在线观看免费| 有码中文亚洲精品| 超碰精品一区二区三区乱码| 欧美激情在线播放| 日韩激情av在线免费观看| 午夜精品一区二区三区在线播放| 久久久久久久999精品视频| 成人国产精品免费视频| 精品无人区太爽高潮在线播放| 国产日韩中文字幕在线| 亚洲图片欧洲图片av| 91亚洲精品久久久| 中文字幕无线精品亚洲乱码一区| 欧美成人免费小视频| 日本人成精品视频在线| 国产精品久久久久福利| 午夜欧美大片免费观看| 日韩有码视频在线| 中文字幕日韩在线观看| 国产精品美女久久久久久免费| 岛国av一区二区在线在线观看| 国产在线视频一区| 两个人的视频www国产精品| 伊人久久大香线蕉av一区二区| 亚洲成人av片在线观看| 国产精品久久国产精品99gif| 久久国产精品久久久久| 伊人久久久久久久久久久久久| 成人精品视频在线| 久久久久久国产三级电影| 亚洲欧美日韩精品久久奇米色影视| 国产欧美日韩综合精品| 精品久久久久久久久久久久| 日韩av在线高清| 国产欧美一区二区三区久久| 亚洲人成网7777777国产| 国产精品网址在线| 亚洲成人av片| 91av在线播放视频| 久久久久久有精品国产| 精品国产成人在线| 午夜精品一区二区三区视频免费看| 精品中文字幕在线观看| 国产日韩欧美一二三区| 欧美亚洲国产视频小说| 久久福利网址导航| 欧美在线视频播放| 国产69精品久久久久9999| 国产伦精品一区二区三区精品视频| 亚洲国产精品视频在线观看| 久久久久久91香蕉国产| 久久国产精品久久久久久| 国产亚洲成av人片在线观看桃| 久久欧美在线电影| 欧美在线观看www| 北条麻妃99精品青青久久| 日韩女优在线播放| 中文字幕精品久久| 91久久久久久久久久久| 国产午夜一区二区| 亚洲成年人影院在线| 粗暴蹂躏中文一区二区三区| 亚洲精品之草原avav久久| 国产精品普通话| 久久综合久久八八| 久久久久久噜噜噜久久久精品| 欧美激情视频三区| 国内成人精品视频| 亚洲女性裸体视频| 国产成人精品视| 欧美激情视频网址| 伊人男人综合视频网| 国产精品日日摸夜夜添夜夜av| 国产深夜精品福利| 国产97在线播放| 日韩精品视频免费专区在线播放| 韩日欧美一区二区| 久久精品久久久久久国产 免费| 亚洲一区亚洲二区亚洲三区| 日韩在线中文字| 国产精品国产三级国产专播精品人| 高跟丝袜一区二区三区| 亚洲精品国产综合久久| 久久人人爽人人爽爽久久| 欧洲成人午夜免费大片| 久久国产精品99国产精| 欧美性猛交99久久久久99按摩| 亚洲天堂网站在线观看视频| 91高清免费视频| 福利二区91精品bt7086| www.欧美精品| 国产视频一区在线| 欧美一区二区影院| 日韩中文字幕在线视频播放| 久久人人爽人人爽人人片亚洲| 亚洲国产精彩中文乱码av| 成人av在线亚洲| 亚洲精品自产拍| 国产精品免费在线免费| 亚洲精品美女视频| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩国产影院| 久久精品电影一区二区| 精品久久久久久久大神国产| 亚洲精品大尺度| 亚洲精品videossex少妇| 不卡av电影在线观看| 精品国产乱码久久久久久天美| 亚洲欧美日韩一区二区在线| 9.1国产丝袜在线观看| 亚洲第一av在线| 亚洲色图国产精品| 91精品国产综合久久久久久久久| www.亚洲一二| 成人久久一区二区| 国产精品jizz在线观看麻豆| 亚洲激情第一页| 综合国产在线观看| 欧美精品18videos性欧| 美日韩精品视频免费看| 欧美成人激情图片网| 日韩精品在线免费播放| 国产一区二区三区在线免费观看| 日韩电视剧免费观看网站| 国产在线视频欧美| 国产精品爱久久久久久久| 国产亚洲aⅴaaaaaa毛片| 日韩亚洲精品视频| 国产欧美精品一区二区| 中文字幕欧美日韩va免费视频| 懂色av中文一区二区三区天美| 欧美日韩国产影院| 久热99视频在线观看| 亚洲福利在线视频| 欧美成人精品h版在线观看| 国产精品99久久久久久白浆小说| 欧美日韩免费看| 青青草国产精品一区二区| 狠狠综合久久av一区二区小说| 日韩av电影手机在线| 欧美黑人一级爽快片淫片高清|