当前页面: 开发资料首页 → J2EE 专题 → 为什么编码变成西欧(ISO)了?
为什么编码变成西欧(ISO)了?
摘要: 为什么编码变成西欧(ISO)了?
一段程序在我本机运行没问题(windows),换到另一台机器上(也是windows)调试运行后,访问编码编码变成西欧(ISO)了,是不是tomcat里面要设置什么?还是jdk的问题?
请google tomcat 中文问题
ISO 是一种国际认证的编码方式 比如 ("iso-8859-1")
我在IE里将西欧改回简体中文后就好了,但是每次访问页面的编码都是西欧的,该怎么解决呢?
jsp页面中加入
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>
应该可以
to:medusa_apple(杜杜)
我加上你说的那段代码后默认编码虽然变回了简体中文,但是页面上还是乱码。
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
to:geleisi(努力..) 页面是乱码有很多种原因的,因为tomcat内部默认的编码是“iso-8859-1”,而可能我们在jsp页面或者servlet中需要显示的字符串是“GBK”或者是“GB2312”编码的。因此有可能一部分是乱码而另一部分却又是正确的。而如果换一种编码,比如utf-8的,可能有些字符串能够在正常显示,而另一部分(比如说从页面提交的数据处理后在返回显示)就又是乱码了。
你可以使用过滤器来解决这个问题。
在tomcat的安装路径/webapps/servlets-examples/WEB-INF/classes/filters/,这个目录下有一个SetCharacterEncodingFilter.java文件,把它引入你的项目,然后修改Web.xml文件,添加下面的内容:
Set Character Encoding
filters.SetCharacterEncodingFilter
encoding
GB2312
Set Character Encoding
/*
注意上面的代码有一个GB2312的地方,这个就是设置编码位置的地方,你可以使用其他的编码比如utf-8或者gbk,不过注意的是,这个地方的编码要和jsp和servlet中的设置一样。否则还是乱码。另外SetCharacterEncodingFilter.java默认是在filters包中的,如果你改变它包的属性,在上面的配置文件中也要改filters.SetCharacterEncodingFilter。这种方法虽然繁琐一点,不过很有效。比起在jsp中对单个字符串调用编码转化的方法要有效的多。