java中unicode和中文相互转换的简单实现
如下所示:
packagetest.com.gjob.services;
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="\u7b80\u4ecb";
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;
}
publicstaticStringdecodeUnicode(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();
}
}
publicstaticStringdecodeUnicode(StringtheString){
charaChar;
intlen=theString.length();
StringBufferoutBuffer=newStringBuffer(len);
for(intx=0;x<len;){
aChar=theString.charAt(x++);
if(aChar=='\\'){
aChar=theString.charAt(x++);
if(aChar=='u'){
//Readthexxxx
intvalue=0;
for(inti=0;i<4;i++){
aChar=theString.charAt(x++);
switch(aChar){
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
value=(value<<4)+aChar-'0';
break;
case'a':
case'b':
case'c':
case'd':
case'e':
case'f':
value=(value<<4)+10+aChar-'a';
break;
case'A':
case'B':
case'C':
case'D':
case'E':
case'F':
value=(value<<4)+10+aChar-'A';
break;
default:
thrownewIllegalArgumentException(
"Malformed\\uxxxxencoding.");
}
}
outBuffer.append((char)value);
}else{
if(aChar=='t')
aChar='\t';
elseif(aChar=='r')
aChar='\r';
elseif(aChar=='n')
aChar='\n';
elseif(aChar=='f')
aChar='\f';
outBuffer.append(aChar);
}
}else
outBuffer.append(aChar);
}
returnoutBuffer.toString();
}
以上这篇java中unicode和中文相互转换的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。