Java论坛网»Java技术»为什么编码变成西欧(ISO)了?

为什么编码变成西欧(ISO)了?

问?:
一段程序在我本机运行没问题(windows),换到另一台机器上(也是windows)调试运行后,访问编码编码变成西欧(ISO)了,是不是tomcat里面要设置什么?还是jdk的问题?
答!: 1:
请google tomcat 中文问题
答!: 2:
ISO 是一种国际认证的编码方式 比如 ("iso-8859-1")
答!: 3:
我在IE里将西欧改回简体中文后就好了,但是每次访问页面的编码都是西欧的,该怎么解决呢?
答!: 4:
jsp页面中加入
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>
答!: 5:
应该可以
答!: 6:
to:medusa_apple(杜杜)

我加上你说的那段代码后默认编码虽然变回了简体中文,但是页面上还是乱码。
答!: 7:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
答!: 8:
to:geleisi(努力..) 页面是乱码有很多种原因的,因为tomcat内部默认的编码是“iso-8859-1”,而可能我们在jsp页面或者servlet中需要显示的字符串是“GBK”或者是“GB2312”编码的。因此有可能一部分是乱码而另一部分却又是正确的。而如果换一种编码,比如utf-8的,可能有些字符串能够在正常显示,而另一部分(比如说从页面提交的数据处理后在返回显示)就又是乱码了。
你可以使用过滤器来解决这个问题。
在tomcat的安装路径/webapps\servlets-examples\WEB-INF\classes\filters\,这个目录下有一个SetCharacterEncodingFilter.java文件,把它引入你的项目,然后修改Web.xml文件,添加下面的内容:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意上面的代码有一个GB2312的地方,这个就是设置编码位置的地方,你可以使用其他的编码比如utf-8或者gbk,不过注意的是,这个地方的编码要和jsp和servlet中的设置一样。否则还是乱码。另外SetCharacterEncodingFilter.java默认是在filters包中的,如果你改变它包的属性,在上面的配置文件中也要改filters.SetCharacterEncodingFilter。这种方法虽然繁琐一点,不过很有效。比起在jsp中对单个字符串调用编码转化的方法要有效的多。

相关JAVA教程:
WebService的传参的问题??在线等  100分
HQL语句中,如何select后面加入一个对象。如:select new String(),cat.name from Cat as cat
混合加密算法的具体实现方法
spring+HIBERNATE305换成313报错,请大侠们给看下
怎样得到table中的一个列的所有数据?
请教!Java 连接 MySQL,从 latin1 表中取中文的问题!
求:<<深入浅出Hibernate>> 源码
xml写问题
用jsp翻译一下这段PHP代码,谢谢了!大家请帮忙吗
兄弟们阿我遇到怪事了!JSP使用struts-html标签不能引用
log与log4j的用法
用java实现实时扫描数据库(例如:隔1秒扫描ACCESS数据库表)急:谢谢