導航:首頁 > 編程語言 > Unicode轉漢字java

Unicode轉漢字java

發布時間:2023-02-05 01:41:36

A. 如何把properties中的所有unicode編碼轉為漢字

命令行界面用native2ascii工具
1.將漢字轉為Unicode:
C:\Program Files\java\jdk1.5.0_04\bin>native2ascii
測試
\u6d4b\u8bd5
2.將Unicode轉換為漢字:
C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii -reverse
\u6d4b\u8bd5
測試

java 自帶的一個native2ascii.exe是一個很好的轉碼工具,在bin目錄下。如果你的properties中有漢字,需要轉成unicode . 則把含有漢字的properties拷貝到bin 目錄下, 然後在cmd裡面進入bin目錄,輸入:native2ascii -encoding utf-8 Language-ext_zh_CN.properties.native Language-ext_zh_CN.properties就ok了。Language-ext_zh_CN.properties是轉碼後的文件。

在做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.txt
native2ascii 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.txt
native2ascii -encoding ISO8859-1 zh.txt i.txt
打開i.txt文件,內容為「\u00c8\u00db\u00d1\u00d2」。
D:將u.txt轉換為本地編碼,輸出到文件u_nv.txt
native2ascii -reverse u.txt u_nv.txt
打開u_nv.txt文件,內容為「熔岩」。
E:將u.txt轉換為本地編碼,輸出到控制台
C:\test>native2ascii -reverse u.txt
熔岩
可以看到,控制台輸出了「熔岩」。
F:將i.txt轉換為本地編碼,輸出到i_nv.txt
native2ascii -reverse i.txt i_nv.txt
打開i_nv.txt文件,內容為「\u00c8\u00db\u00d1\u00d2」。發現轉碼前後完全一樣的。也就是說,等於沒有轉,或者說思想糊塗,對命名沒有理解。。

G:將i.txt轉換為GBK編碼,輸出到i_gbk.txt
native2ascii -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.txt
12axyz
結果還是沒有轉碼。
從結果可以得出結論:對於純數字和字母的文本類型件,轉碼前後的內容是一樣的。

B. java 中如何將unicode字元集轉換成漢字

我這eclipse自動把它轉中文了。。你看下這個。
http://blog.csdn.net/shigang_xing/article/details/8263728

C. java把unicode還原成漢字

這個本來就是unicode的,按unicode的來讀才行。
FF FE 開頭是unicode的標志

public class ReadUnicode {
public static void main(String[] args) throws Exception{
String encoding = "Unicode";
String txtFilePath = "ReadUnicode321.txt";//
String tmpLineVal;
InputStreamReader read = new InputStreamReader(new FileInputStream(txtFilePath), encoding);
BufferedReader bufread = new BufferedReader(read);
while((tmpLineVal = bufread.readLine())!=null){
System.out.println(tmpLineVal);
}
bufread.close();
read.close();
}
}

D. java怎麼把漢字轉化成unicode編碼

中文轉換成Unicode編碼和Unicode編碼轉換成中文

importjava.util.Properties;
publicclassTest{
publicstaticvoidmain(String[]args){
Strings="簡介";
Stringtt=gbEncoding(s);//Stringtt1="你好";
System.out.println(decodeUnicode("\u7b80\u4ecb"));//System.out.println(decodeUnicode(tt1));
System.out.println(HTMLDecoder.decode("中國"));
Strings1="u7b80u4ecb";
System.out.println(s.indexOf("\"));
}
publicstaticStringgbEncoding(finalStringgbString){
char[]utfBytes=gbString.toCharArray();
StringunicodeBytes="";
for(intbyteIndex=0;byteIndex<utfBytes.length;byteIndex++){
StringhexB=Integer.toHexString(utfBytes[byteIndex]);
if(hexB.length()<=2){
hexB="00"+hexB;
}
unicodeBytes=unicodeBytes+"\u"+hexB;
}
System.out.println("unicodeBytesis:"+unicodeBytes);
returnunicodeBytes;}
(finalStringdataStr){
intstart=0;
intend=0;
finalStringBufferbuffer=newStringBuffer();
while(start>-1){
end=dataStr.indexOf("\u",start+2);
StringcharStr="";
if(end==-1){
charStr=dataStr.substring(start+2,dataStr.length());
}else{
charStr=dataStr.substring(start+2,end);
}
charletter=(char)Integer.parseInt(charStr,16);//16進制parse整形字元串。
buffer.append(newCharacter(letter).toString());
start=end;
}
returnbuffer.toString();
}}
}
}
}

E. 用java如何把unicode碼轉成漢字

Java中字元和字元串都採用的是Unicode編碼;漢字能夠直接表示;不需要轉換
可以測試一下
public
class
Unicode
2Ch
z
{
public
static
void
main(String[]
args)
{
System.out.print(cc);}}直接輸出:保

F. Java如何將一段漢字變成unicode碼

publicclassT{
publicstaticvoidmain(String[]args){
Strings="我愛你";
System.out.println(string2Unicode(s));
}
(Stringstring){

StringBufferunicode=newStringBuffer();

for(inti=0;i<string.length();i++){

//取出每一個字元
charc=string.charAt(i);

//轉換為unicode
unicode.append("\u"+Integer.toHexString(c));
}

returnunicode.toString();
}
}

G. java 將字元串中含有unicode 轉成中文!

publicclassConvert
{
(Stringasciicode)
{
String[]asciis=asciicode.split("\\u");
StringnativeValue=asciis[0];
try
{
for(inti=1;i<asciis.length;i++)
{
Stringcode=asciis[i];
nativeValue+=(char)Integer.parseInt(code.substring(0,4),16);
if(code.length()>4)
{
nativeValue+=code.substring(4,code.length());
}
}
}
catch(NumberFormatExceptione)
{
returnasciicode;
}
returnnativeValue;
}

publicstaticvoidmain(String[]args)
{
Stringstr=""JWHQK_JWQC":""";
Stringresult=ascii2native(str);
System.out.println(result);
}
}

H. JAVA程序,從鍵盤輸入漢字,並將漢子轉換為相應的unicode編碼,怎麼寫啊

上代碼:

importjava.util.Scanner;

publicclassMain{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("請輸入漢字:");
Stringinput=sc.nextLine();
if(input.length()==0){
System.out.println("輸入錯誤");
return;
}

System.out.println("漢字轉unicode結果:");
char[]chars=input.toCharArray();
for(inti=0;i<chars.length;i++){
Stringunicode=Integer.toHexString(chars[i]);
if(unicode.length()<=2){
//不足四位前面加0補齊
unicode="00"+unicode;
}
unicode="\u"+unicode;

System.out.println(chars[i]+":"+unicode);
}
}
}

I. JAVA如何將unicode轉為中文。

importorg.apache.commons.lang.StringEscapeUtils;
publicclassrectangle{
publicstaticvoidmain(String[]arge){
Strings=StringEscapeUtils.unescapeHtml("&#25391;&#33633;&#22120;&#31867;&#22411;");
System.out.println(s);
}
}

你需要額外的工具:

簡單的辦法,去下載commons-lang-2.3.jar,然後加入到classpath里。


或者,如果用manve 加上:

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.3</version>

</dependency>

讓maven去自動下載。

J. java讀取含有unicode編碼的文件內容,並轉換成漢字

可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。

BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容(unicode會自動轉換為中文的)
};
備註:unicode不需要轉換的,直接輸出即可,會自動變成中文,如:
System.out.println("\u0061\u0062\u6c49\u5b57");
結果就是:ab漢字。

閱讀全文

與Unicode轉漢字java相關的資料

熱點內容
linux結構分析 瀏覽:812
程序員記錄歷史 瀏覽:798
編譯器怎麼調用構造函數的 瀏覽:95
高質量cpdf 瀏覽:821
福建電信代理伺服器雲主機 瀏覽:616
美圖看看pdf 瀏覽:432
編譯後報錯 瀏覽:291
網路設備怎麼加密 瀏覽:785
hbuilderx文件夾有哪些 瀏覽:102
空調壓縮機生產板塊 瀏覽:612
開源多媒體伺服器都有什麼 瀏覽:392
反編譯了別人的app會被發現嗎 瀏覽:918
上海光裕汽車壓縮機有限公司 瀏覽:333
連接ps4伺服器地址 瀏覽:136
新神魔大陸三星賬號是什麼伺服器 瀏覽:677
壓縮機lj100cy 瀏覽:556
王者系統怎麼轉回安卓系統 瀏覽:749
linux查看路由表命令 瀏覽:506
高手程序員使用什麼筆記本 瀏覽:440
ios壓縮圖片app 瀏覽:839