Java内存中的字符串是unicode,而外面的输入和输出设备不支持unicode编码,所以只要把外面的字符数据输入进来或把内存中的字符输出去,就一定
要编码转换,乱码就是在这个情况下产生的
字符乱码:
1. 本来是汉字,以汉字的GBK或utf-8编码输出,编码不会乱,如果以其他编码输出就会显示乱码
2. 确实以某种合适的编码输出去了,但是是外部设备所不支持的,会显示乱码
3. 确实以合适的编码输出了,外部设备也支持,但是你设置显示输出的是另外一种编码
字符乱码解决:
、1.输出乱码,输出的编码和保存的编码不一样从而导致乱码
设置输出编码形式:
pageEncoding=”utf-8”; 或 content=”text/html ; charset=utf-8”;
2保存乱码,保存时因编码形式错误而导致保存乱码,
这是要设置保存的编码:
Response.setContentType(”text/html ; charset=utf-8”);
汉字--àGBK或UTF-8--à url编码(%d5%c5)--àurl解码--àGBK或UTF-8--à字符串(unicode)
getOutputStream(“中国”.getBytes(编码)); 如果没有,默认为操作系统的编码(中国GBK)