注意此函数支持是\u格式如果是%u可以先替换成\u,这个函数可以在usc2中插入不相关的解码字符,比如:你好\u1234不会影响解码,这个就是用寻找字符方法实现的,其实也可以用正则表达式方法搞定,这里足够用了。
方法名 ucs2解码 返回值 文本型
参数名 ucs2 类型 文本型
然后写代码
@ final StringBuffer buffer = new StringBuffer();
@ String result="";
@ String charStr="";
@ int findIndex=0;
@ int offsetIndex=0;
@ while(findIndex>-1)
@ {
@ findIndex=@<ucs2>.indexOf("\\u",offsetIndex);
@ if(findIndex>-1)
@ {
@ if(findIndex==offsetIndex)
@ {
@ charStr=@<ucs2>.substring(findIndex+2,findIndex+6);
@ char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
@ result=new Character(letter).toString();
@ offsetIndex=findIndex+6;
@ buffer.append(result);
@ }else
@ {
@ result=@<ucs2>.substring(offsetIndex,findIndex);
@ charStr=@<ucs2>.substring(findIndex+2,findIndex+6);
@ char letter = (char) Integer.parseInt(charStr, 16);
@ result+=new Character(letter).toString();
@ offsetIndex=findIndex+6;
@ buffer.append(result);
@ }
@
@ }
@
@ }
@ if(offsetIndex<@<ucs2>.length()-1)
@ {
@ buffer.append(@<ucs2>.substring(offsetIndex));
@ }
@
@ @<ucs2>=buffer.toString();
返回(ucs2)