Chinaunix首页 | 论坛 | 博客
  • 博客访问: 891116
  • 博文数量: 380
  • 博客积分: 3495
  • 博客等级: 中校
  • 技术积分: 3996
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 09:35
文章分类

全部博文(380)

文章存档

2015年(2)

2014年(5)

2013年(9)

2012年(9)

2011年(67)

2010年(103)

2009年(182)

2008年(3)

我的朋友

分类: Java

2009-07-16 12:42:09

浏览器判断编码的标准
  1.HTTP协议内的Content-Type头的charset属性
  2.HTML内的META的http-equiv中设定牟Content-Type头中设定的charset属性
  3.HTML内的charset属性
  优先级是从上到下的。
  如果发生乱码肯定是有优先级高的扰乱了低优先级的设定。
例:
下列的JSP文件:
<%@ page language="java" %>


  
  テスト


  テストです。



而TOMCAT默认的编码是ISO-8859-1,那么肯定会得到一个乱码的页面。
对应方法:
Servelet:

   res.setContentType("text/html; charset=Windows-31J");
JSP:

  <%@ page language="java" contentType="text/html; charset=Windows-31J"
    pageEncoding="Windows-31J" %>

如果是APACHE与TOMCAT连接的,还要在APACHE里把配置文件中下面的内容注释掉
AddDefaultCharset ISO-8859-1

特殊字符对应
  主要是日文中的圈1,圈2等,这些不是标准字符,在不同的字符集或是同一字符集而不是同一操作系统的机器上都有可能是不一样的。
  这样就要指定编码标准为
Windows-31J而不是Shift_JIS

文件读取乱码或是FORM输入乱码
  直接指定编码
  InputStreamReader isr = new InputStreamReader(
    new FileInputStream("filename.txt"), "Windows-31J");
JSP包含时的乱码
  原则上只在一最外层指定编码

如果大家日文好的话,可以参见下面的文章





阅读(485) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~