- 论坛徽章:
- 0
|
浏览器判断编码的标准
1.HTTP协议内的Content-Type头的charset属性
2.HTML内的META的http-equiv中设定牟Content-Type头中设定的charset属性
3.HTML内的charset属性
优先级是从上到下的。
如果发生乱码肯定是有优先级高的扰乱了低优先级的设定。
例:
下列的JSP文件:
テスト
テストです。
而TOMCAT默认的编码是ISO-8859-1,那么肯定会得到一个乱码的页面。
对应方法:
Servelet:[color="#ffffff"]
res.setContentType("text/html; charset=Windows-31J");
JSP:
如果是APACHE与TOMCAT连接的,还要在APACHE里把配置文件中下面的内容注释掉
[color="#ffffff"]AddDefaultCharset ISO-8859-1
特殊字符对应
主要是日文中的圈1,圈2等,这些不是标准字符,在不同的字符集或是同一字符集而不是同一操作系统的机器上都有可能是不一样的。
这样就要指定编码标准为Windows-31J而不是Shift_JIS
文件读取乱码或是FORM输入乱码
直接指定编码
InputStreamReader isr = new InputStreamReader(
new FileInputStream("filename.txt"),
"Windows-31J");
JSP包含时的乱码
原则上只在一最外层指定编码
如果大家日文好的话,可以参见下面的文章
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55705/showart_1997917.html |
|