关于编码转换

pressman 2008-06-06 01:13:10
收到 这个copy到google里面一查,发现是‘收到’

请问,
1 位数字;这个格式是汉字的unicode编码吗?
2 java里有直接把这种编码转为gb2312的函数吗?

我在网上找了很多例子,都不正确。
请给个可运行的例子,然后一定马上结帖。
http://topic.csdn.net/u/20080606/13/6a692578-156b-4036-9feb-30d6d8c6c638.html 和这个帖子为同一帖,分数一起给!
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnjd314053754 2008-06-06
  • 打赏
  • 举报
回复
关注一下
yooooyiiiiiiiiii 2008-06-06
  • 打赏
  • 举报
回复
http://www.box.net/index.php?rm=box_download_shared_file&file_id=f_149955602&shared_name=dqq7c08co4
汉字转unicode编码工具,转换看看是不是一样就知道了。

连是什么编码都不清楚,如何查找java能否转码?
cursor_wang 2008-06-06
  • 打赏
  • 举报
回复
用现有的包是最好的了.commons.lang包能解决.
npuhetao 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zzr82528 的回复:]

把&#和;之间的数字取出来,转化成char类型即可
相当于(char)Integer.valueOf("25910");

下面的代码是用16进制做的,十进制更简单一些,便是边界控制要改一改。
16进制的格式是这样的香其实没有什么差别。只是把取数字的地方改一下,转整型的时候不用十六进制就OK了。

Java code
package cn.yicha.test;

public class wren4255 {
public final static String HEX_CHARS = "0123456789abcde…
[/Quote]
maverick8888 2008-06-06
  • 打赏
  • 举报
回复
到=U+5230(Unicode)=到=到=E5 88 B0(UTF-8)=\u5230(javascript)

到只是一种编码格式,它是由&#+十进制数 或者是由&#x+十六进制数构成

它的意义在于表示unicode,21040是unicode码(十进制),十六进制就是x5230,它只是unicode的表现方式或者说是实现方式,想utf-8就是unicode的一种实现方式。

在html中到表示“到”,你可以把它粘贴到html中看看,有的时候后面还需要加“;”,这是由不同的浏览器决定的,一般是在html中使用,在其他的环境中还不了解
zzr82528 2008-06-06
  • 打赏
  • 举报
回复

把&#和;之间的数字取出来,转化成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();
}
}
fulianglove 2008-06-06
  • 打赏
  • 举报
回复
&#这个是url的编码吧,后面这几个数字是字符的unicode值
使用String的getBytes(String charsetName)方法就可以从unicode转换到你想要的字符集,
不过要把那些&#;去掉再加上\u来表示是unicode
具体自己写
xiyuan1999 2008-06-06
  • 打赏
  • 举报
回复
Commons Lang 包中有

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧