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和中文相互转换的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。