事情原因请详见利用javascript将unicode码转成ascii码中所描述,现在只将java代码贴上,希望能为遇到同样问题的人找到解决难题的答案
private static String convertToChinese(String dataStr) {
if(dataStr == null || dataStr.length() == 0) {
return dataStr;
}
int start = 0;
int end = 0;
final StringBuffer buffer = new StringBuffer();
while (start > -1) {
int system = 10;// 进制
if (start == 0) {
int t = dataStr.indexOf(“”);
if (start != t)
start = t;
if(start > 0) {
buffer.append(dataStr.substring(0, start));
}
if(start == -1) {
return dataStr;
}
}
end = dataStr.indexOf(“;”, start + 2);
String charStr = “”;
if (end != -1) {
charStr = dataStr.substring(start + 2, end);
// 判断进制
char s = charStr.charAt(0);
if (s == ‘x’ || s == ‘X’) {
system = 16;
charStr = charStr.substring(1);
}
// 转换
try {
char letter = (char) Integer.parseInt(charStr, system);
buffer.append(new Character(letter).toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
// 处理当前unicode字符到下一个unicode字符之间的非unicode字符
start = dataStr.indexOf(“”, end);
if (start – end > 1) {
buffer.append(dataStr.substring(end + 1, start));
}
// 处理最后面的非 unicode字符
if (start == -1) {
int length = dataStr.length();
if (end + 1 != length) {
buffer.append(dataStr.substring(end + 1, length));
}
}
}
return buffer.toString();
}
今天的文章java unicode转ascii_利用JAVA将Unicode转换成Ascii分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26838.html