字符编码问题

tterminator 2013-08-31 12:24:13
public class characterEncoding {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte [] a="我爱中国".getBytes();
byte [] b="我爱中国".getBytes("iso-8859-1");
String str_gbk=new String(b, "gbk");
//str_iso为什么是乱码?
String str_iso=new String(b, "iso-8859-1");
String str_default=new String(a);
System.out.println("str_gbk="+str_gbk);
System.out.println("str_iso="+str_iso);
System.out.println("str_default="+str_default);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
...全文
206 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tterminator 2013-08-31
  • 打赏
  • 举报
回复
引用
#1 String str_iso=new String(b, "iso-8859-1"); 8859编码是不支持中文的,你写我爱中国,用这个编码肯定存在问题的。
非常感谢您的回答
tterminator 2013-08-31
  • 打赏
  • 举报
回复
引用
#2 从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8", 以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。
原以为只要编码和解码用的格式一样即可,没想过字符编码格式是不是支持中文,非常感谢
tterminator 2013-08-31
  • 打赏
  • 举报
回复
引用
#3
您推荐的那篇文章在《深入分析Java Web技术内幕》第三章http://product.dangdang.com/product.aspx?product_id=22881803 看完理解的不是很透彻,以为只要编码和解码用的格式一样即可,没想过某种格式是不是支持中文,非常感谢
huntor 2013-08-31
  • 打赏
  • 举报
回复
失落夏天 2013-08-31
  • 打赏
  • 举报
回复
从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8", 以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。
2013-08-31
  • 打赏
  • 举报
回复
String str_iso=new String(b, "iso-8859-1"); 8859编码是不支持中文的,你写我爱中国,用这个编码肯定存在问题的。

62,620

社区成员

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

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