[Java][原创]ucs2编码转ansi
注意此函数支持是\u格式如果是%u可以先替换成\u,这个函数可以在usc2中插入不相关的解码字符,比如:你好\u1234不会影响解码,这个就是用寻找字符方法实现的,其实也可以用正则表达式方法搞定,这里足够用了。
public static String decodeUnicode(String data) {
final StringBuffer buffer = new StringBuffer();
String result="";
String charStr="";
int findIndex=0;
int offsetIndex=0;
while(findIndex>-1)
{
findIndex=data.indexOf("\\u",offsetIndex);
if(findIndex>-1)
{
if(findIndex==offsetIndex)
{
charStr=data.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=data.substring(offsetIndex,findIndex);
charStr=data.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<data.length()-1)
{
buffer.append(data.substring(offsetIndex));
}
return buffer.toString();
}
- 点赞
- 收藏
- 关注作者
评论(0)