收到 这个copy到google里面一查,发现是‘收到’ 请问,
1 位数字;这个格式是汉字的unicode编码吗?
2 java里有直接把这种编码转为gb2312的函数吗? 我在网上找了很多例子,都不正确。
请给个可运行的例子,然后一定马上结帖。
http://topic.csdn.net/u/20080606/13/6a692578-156b-4036-9feb-30d6d8c6c638.html 和这个帖子为同一帖,分数一起给!
1 位数字;这个格式是汉字的unicode编码吗?
2 java里有直接把这种编码转为gb2312的函数吗? 我在网上找了很多例子,都不正确。
请给个可运行的例子,然后一定马上结帖。
http://topic.csdn.net/u/20080606/13/6a692578-156b-4036-9feb-30d6d8c6c638.html 和这个帖子为同一帖,分数一起给!
使用String的getBytes(String charsetName)方法就可以从unicode转换到你想要的字符集,
不过要把那些&#;去掉再加上\u来表示是unicode
具体自己写
把&#和;之间的数字取出来,转化成char类型即可
相当于(char)Integer.valueOf("25910");下面的代码是用16进制做的,十进制更简单一些,便是边界控制要改一改。
16进制的格式是这样的香其实没有什么差别。只是把取数字的地方改一下,转整型的时候不用十六进制就OK了。package cn.yicha.test;public class wren4255 {
public final static String HEX_CHARS = "0123456789abcdefABCDEF"; public static void main(String args[]) {
System.out.println(UTF2GB("香"));
} public static String UTF2GB(String UTFString) {
if (UTFString == null) {
return "";
}
StringBuffer sb = new StringBuffer(UTFString.length());
int origPos = 0;
for (int i = 0; i < UTFString.length();) {
origPos = i;
if ((i + 7) < UTFString.length()) {
if (UTFString.charAt(i) == '&' && UTFString.charAt(++i) == '#'
&& UTFString.charAt(++i) == 'x') {
if (UTFString.charAt(i + 5) == ';') {
if (HEX_CHARS.indexOf(UTFString.charAt(i + 1)) == -1
|| HEX_CHARS.indexOf(UTFString.charAt(i + 2)) == -1
|| HEX_CHARS.indexOf(UTFString.charAt(i + 3)) == -1
|| HEX_CHARS.indexOf(UTFString.charAt(i + 4)) == -1) {
i--;
sb.append(UTFString.charAt(i - 1));
} else {
sb.append((char) Integer.valueOf(
UTFString.substring(++i, i + 4), 16)
.intValue());
i += 5;
}
} else if (UTFString.charAt(i + 3) == ';') {
if (HEX_CHARS.indexOf(UTFString.charAt(i + 1)) == -1
|| HEX_CHARS.indexOf(UTFString.charAt(i + 2)) == -1) {
i--;
sb.append(UTFString.charAt(i - 1));
} else {
sb.append((char) Integer.valueOf(
UTFString.substring(++i, i + 2), 16)
.intValue());
i += 3;
}
} else {
i--;
sb.append(UTFString.charAt(i - 1));
}
} else {
if (origPos == i) {
sb.append(UTFString.charAt(i));
i++;
} else {
sb.append(UTFString.substring(origPos, i));
}
}
} else if ((i + 5) < UTFString.length()) {
if (UTFString.charAt(i) == '&' && UTFString.charAt(++i) == '#'
&& UTFString.charAt(++i) == 'x'
&& UTFString.charAt(i + 3) == ';') {
if (HEX_CHARS.indexOf(UTFString.charAt(i + 1)) == -1
|| HEX_CHARS.indexOf(UTFString.charAt(i + 2)) == -1) {
i--;
sb.append(UTFString.charAt(i - 1));
} else {
sb
.append((char) Integer.valueOf(
UTFString.substring(++i, i + 2), 16)
.intValue());
i += 3;
}
} else {
if (origPos == i) {
sb.append(UTFString.charAt(i));
i++;
} else {
sb.append(UTFString.substring(origPos, i));
}
}
} else {
sb.append(UTFString.charAt(i));
i++;
}
}
return sb.toString();
}
}
汉字转unicode编码工具,转换看看是不是一样就知道了。连是什么编码都不清楚,如何查找java能否转码?