Java论坛网»Java技术»J2EE开发的HTML页面中汉字显示为乱码

J2EE开发的HTML页面中汉字显示为乱码

问?:
问下大家啊~~J2EE开发中只要是HTML文件需要显示汉字的
都显示为乱码是什么问题,该怎么解决啊
同时我也注意到所有机器上的IE-工具-INTERNET-高级-里有选项打勾:
总是以UTF-8发送URL
答!: 1:
补充一下,如果在JSP页中汉字显示正常
答!: 2:
请帮忙给出具体在HTML页中添加的语句
不用写过滤类或者SERVLET的
答!: 3:
1.<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
2. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
你把上面2个地方加上去看看

答!: 4:
国际化的东西带来的问题还真的好多,各国语言不同,所使用的字符集都不一样,JAVA,Mysql,Tomcat,浏览器等等用的字符集也不一样,这几天气得我都说了好几次不用什么Struts,Mysql,Tomcat了,全部都是自己写出来好了,用统一的编码统一的字符集,可惜能力不够,说说而已,问题还是得解决。在网上查了好久,自己也实践了好多天,问题终于算是解决了。
强烈建议使用struts时所有编码均采用UTF-8(unicode)编码
因为要考虑到很多国的语言,一开始就把项目立足于国际化,遇到的乱码有
1、资源文件里读出来在页面上的乱码;
2、数据库读出来的乱码
3、数据库写进去的乱码
4、在ActionForm验证不通过Errors返回的乱码,也就是request,IE参数传递的乱码了。
下面是我的解决方法
1、资源文件里读出来在页面上的乱码:这个最容易解决了,把写好的ApplicationResources.properties文件,在DOC底下用 native2ascii -encoding gb2312 ApplicationResources.properties
ApplicationResources_zh_CN.properties 命令来个字符编码转换,将原来的中文转为Unicode编码就搞定了中文简体,繁体也用同样的命令,只是把 bg2312 改为 bgk 就可以了。
2、数据库读写的乱码,刚开始的时候因为受以前的SQL Server+JDBC 影响(在那时写入数据库是可以不用做什么工作的,只是在读出来的时候来个 gbk = new String(iso.getBytes("ISO-8859-1"), "GBK") 转换就行了)我也都在把读写都在转换,搞得好复杂也很麻烦,后来在连接池连接代码jdbc:mysql://localhost:3306/database?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8那里加上一个&useUnicode=true&characterEncoding=UTF-8,保证了在数据库操作时候使用了统一的编码字符集,又解决了两个乱码问题,一举两得,嘿嘿。
4、request,response的乱码在网上找了好久,也有两个解决的办法,也是来个转换,还有种办法是写一个过滤器,我选择了后者,因为简单:),这方法用到两个文件,一个是 filter ,一个是 web.xml 文件,代码在后面。
5、至于JS的这个问题,还没办法,只好在JSP页面上改为<%@ page contentType=“text/html; charset=UTF-8“%>了,反正这样也没问题。
到此为止,乱码问题总算告一段落了,感觉蛮不错的,郁闷了这么久,终于可以高兴了好大一段子了。

package Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
public class MyFilter extends ActionServlet
{
protected void process(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException
{ /**@todo Override this
org.apache.struts.action.ActionServlet
method*/
request.setCharacterEncoding("UTF-8");
super.process(request, response); }
}
答!: 5:
以上来源于网络
答!: 6:
赞同meilvin() ( ) 信誉:100 Blog 的说法!!!!
答!: 7:
public class MyFilter extends Filter 可以了
答!: 8:
楼上的牛哥们看清楚了,我说的是HTML页显示乱码,今天灵机一动,把所有HTML页全改下成为JSP页,也``汉字正常了.很无奈,一个治标不治本的方法~~
而且我觉得问题的所在是JBOSS,TOMCAT等应用服务器的设置问题,在JBOSS里需要改个地方,但是一直没找到该怎么改.我用的JBOSS,希望哪位大人帮忙彻底解决下小弟这个问题,多谢``

相关JAVA教程:
java初级问题
Struts中多文件上传的 FormBean 怎么写 在JSP中,怎样对应property
关于JComboBox的ItemStatedChangedListener
读取xml内容,并显示在jsp页面上
hibernate的HQL查询和本地化查询有什么根本的区别?
郁闷三天的小问题
共享一些面试题
如何在JBuilder中象MsgBox一样弹出一个对话框?
interface如何定义和使用?
新手提问:关于freemarker的问题?
谁有没有删除hibernate一条记录的好点的方法。我对现有的方法受够了。
关于Spring控制器的一点点疑惑