关于Java 乱码的本质

最近因为项目迁移服务器的原因 本地测试没什么问题 到了新服务器后都乱码了,所以稍微研究了下乱码的原因

还有几个地方不太明白 希望高手能给指点下迷津,小弟在此先谢过了

我java文件的编码设置的是 UTF-8编码 可能涉及到 String的 getBytes() 和 new String(char [] args)两个方法会调用到java文件的编码

以下这段代码 查看了下结果

byte [] iso = "待查".getBytes();
String iso_1 = new String(iso); //正常
String iso_2 = new String(iso,"ISO-8859-1");//乱码
byte [] utf = "待查".getBytes("utf-8");
String utf_1 = new String(utf);//正常
String utf_2 = new String(utf,"ISO-8859-1");//乱码
byte [] gb = "待查".getBytes("gb2312");
String gb_1 = new String(gb);//乱码
String gb_2 = new String(gb,"ISO-8859-1");//乱码

有以下几个问题想请教下

1.ISO-8859-1 编码范围 和 UTF-8 的 区域范围哪个大呢?为什么UTF-8编码获取到字节 用ISO-8859-1解码后还是乱码呢?也希望高手能推荐点获取这样资料的文章地址或者网站

2.

我有数据需要导出为execl 文件 设置导出的文件名的时候

我按下面的编码设置的,我页面的编码也是UTF-8

resp.setContentType("application/vnd.ms-excel :charset=gb2312");

resp.setHeader("Content-Disposition", "attachment;filename="+new String("待查人员.xls".getBytes("gb2312"),"gb2312")+";");

怎么文件名还是乱码呢?

猜你喜欢

转载自hawaii162162.iteye.com/blog/1465059
今日推荐