android 汉字编码,【Android开发日记】UTF8汉字编码还原成汉字
使用的是网上找到的一个方法,有缺陷,自己做了改进:\u6d4b\u8bd5\u6570\u5b57\u4e22\u5931123,123\u6d4b\u8bd5\u6570\u5b57\u4e22\u5931,\u6d4b\u8bd5123\u6570\u5b57\u4e22\u5931转化结果:测试数字丢失123123测试数字丢失测试123数字丢失public String convert(St
使用的是网上找到的一个方法,有缺陷,自己做了改进:
\u6d4b\u8bd5\u6570\u5b57\u4e22\u5931123,
123\u6d4b\u8bd5\u6570\u5b57\u4e22\u5931,
\u6d4b\u8bd5123\u6570\u5b57\u4e22\u5931
转化结果:
测试数字丢失123
123测试数字丢失
测试123数字丢失
public String convert(String utfString){
StringBuilder sb = new StringBuilder();
int i = -1;
int pos = 0;
if (utfString.contains("\\u")){
while((i=utfString.indexOf("\\u", pos)) != -1){
sb.append(utfString.substring(pos, i));
if(i+5 < utfString.length()){
pos = i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2, i+6), 16));
}
}
if(pos
sb.append(utfString.substring(pos, utfString.length()));
Log.e("sb.toString()", "sb.toString()=" + sb.toString());
return sb.toString();
}
else
return utfString;
}
之前的方法少了这两句:
if(pos
sb.append(utfString.substring(pos, utfString.length())); 结果当汉字+数字混合时,如果数字在整个字符串结尾那么数字就会被漏掉。已改进。
更多推荐
所有评论(0)