二进制及JAVA中字符字节的一些复习
背景
在调用金蝶K3/Cloud WebApi向金蝶ERP软件中保存或修改一些数据时,总是会出现乱码,于是便开始找原因。
第一次处理字符乱码问题
因为部分代码是从金蝶论坛上面直接copy的。论坛的老师也对字符进行了处理,是将字符中的汉字过滤出来
转为16进制前面再与\u拼接 获取其Unicode编码。但这种方法对于某些字符不起作用。比如Ascll十进制代码183 的中点“·”
附上Ascll码对照表
public static String chinaToUnicode(String str) {
String result = "";
for (int i = 0; i < str.length(); i++) {
int chr1 = (char) str.charAt(i);
if (chr1 >= 19968 && chr1 <= 171941) {
// 汉字范围 \u4e00-\u9fa5 (中文)
result += "\\u" + Integer.toHexString(chr1);
} else {
result += str.charAt(i);
}
}
return result;
}
第二次处理
将标点和中文都进行了过滤(||或关系也试过),结果还是不行
public static String chinaToUnicode2(String str) {
char[] chars = str.toCharArray()