请问如何能将GB2312编码的字符串转换为ISO-8859-1编码的字符串

flyingroc8139 2007-09-27 01:40:07
最近遇到一道题目,要写出将GB2312编码的字符串转换为ISO-8859-1编码的字符串的方法,在网上搜了下,发现这个问题没有很好的解答,用new String(GBstr.getBytes("GB2312"),"ISO-8859-1");得到的还是问号,就是无法识别的字符,如果中文本身就没有对应的ISO-8859-1编码字符,那转换还有什么意义呢?如何可以转换,那如何把转换过去的ISO-8859-1编码的字符再转回GB2312格式的中文字符呢?请知道的朋友帮忙解答下,谢谢!
...全文
1069 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadao 2007-09-30
  • 打赏
  • 举报
回复
本贴乃IQ题


鉴定完毕
南南北北 2007-09-30
  • 打赏
  • 举报
回复
难道是这个意思?

StringBuffer strBuf = new StringBuffer();
String str = "中国";
byte[] bGBK = str.getBytes("GBK");
for(int i=0;i<bGBK.length;i++){
// System.out.println(Integer.toHexString(bGBK[i]&0xff));
strBuf.append(Integer.toHexString(bGBK[i]&0xff));
}
System.out.println(strBuf.toString());

得到结果是:d6d0b9fa

「已注销」 2007-09-30
  • 打赏
  • 举报
回复
new String(gb2312字节序列,"GB2312").getBytes("ISO-8859-1")
「已注销」 2007-09-30
  • 打赏
  • 举报
回复
字符串是没有编码区别的
有区别的是存储字符串的字节序列有编码区分
因此应该是说,把GB2312编码的字符串字节序列转化为ISO-8859-1编码的字节序列
flyingroc8139 2007-09-28
  • 打赏
  • 举报
回复
谢谢各位热心回答,我的意思是遇到这么一道题,必然有它的道理。java里面默认是用unicode字符集,ISO-8859-1编码本身不能表示中文,用java自带的方法转换肯定是显示?,但会不会题目的意思是把中文双字节转换成单字节,再把单字节的编码转换成ISO-8859-1?这是我猜测的,不知道有没有研究过这方面的高手解答下,谢谢!
achao818 2007-09-27
  • 打赏
  • 举报
回复
up
南南北北 2007-09-27
  • 打赏
  • 举报
回复
GB2312编码的字符串转换为ISO-8859-1编码的字符串?

-------------------------------------------------------

java使用UNICODE表示字符串,所以你不可能成功。
zephyr_cc 2007-09-27
  • 打赏
  • 举报
回复
?字符串不是unicode的吗?
lz指的是GB2312的byte[]转ISO-8859-1的byte[]?
storm_zone 2007-09-27
  • 打赏
  • 举报
回复
还用这个方法转换回来就行了
storm_zone 2007-09-27
  • 打赏
  • 举报
回复
得到的应该是????没有错, 因为ISO-8859-1本身就不能正常显示中文呀~

你再转换回GB2312试试!
for_cyan 2007-09-27
  • 打赏
  • 举报
回复
编码转换就是
new String(GBstr.getBytes("原有编码"),"目标编码");
如果你只有原有编码的话就这样转换
常用的有
GBK
ISO-8859-1
UTF-8
GB2312

62,623

社区成员

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

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