《关于mysql乱码问题的解决方法》--作者:nowind http://javawebstudio.com/bbs/dispbbs.asp?boardID=8&ID=251&page=1
解决方案 »
- java web中怎么样在页面中显示数据库中的数据啊
- 大家帮忙看下这份工作还可以吗
- 动态转静态的问题 很急 很急。。。。
- 谁有ROSE 二次开发的资料
- JAVA的朋友看过来挖~~~~(小弟难得在此散分)
- 请前辈帮帮我:我想当软件开发工程师
- 报表引擎的问题?怎样处理业务数据的处理问题?
- No ResultSet set was produced.异常
- 急!!!!!!!!!能告诉我几个java连接数据库的步骤!!给分
- mybatis+spring-boot出现Invalid bound statement (not found):问题
- 字符写入数据库有一个字是乱码乱码,但其他字都没问题,如何解决阿
- 关于hibernate的奇怪性能问题
也可以在程序里面做.
网上有资料的,用'转码'作为关键字查询一下看看,应该可以查到.
我的主页http://51home.ku.net
{ ....
req.setCharacterEncoding("GB2312");}
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
web.xml里边把这些也加上
记得吧web.xml的filter去掉,页面也适用GBK就好了(或者同时使用gb2312)
记得吧web.xml的filter去掉,页面也适用GBK就好了(或者同时使用gb2312)
http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=01、从webapps\jsp-examples\WEB-INF\classes\下拷贝filters目录到YourAPP的classes目录下
2、设置Tomcat的Server.xml配置文件在<Connector中增加URIEncoding="GBK"成如下
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"/>
3、在应用程序的配置文件web.xml中<web-app>增加
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>二、代码修改
1、JSP文件的修改
在首句加上:
<%@ page contentType="text/html;charset=GBK"%>
以显示中文2、new String((request.getParameter("caseData")).getBytes("ISO-8859-1"),"GBK");JDBC源:
jdbc:mysql://localhost/Test?autoReconnect=true&useUnicode=true&characterEncoding=GB2312
http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=01、从webapps\jsp-examples\WEB-INF\classes\下拷贝filters目录到YourAPP的classes目录下
2、设置Tomcat的Server.xml配置文件在<Connector中增加URIEncoding="GBK"成如下
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"/>
3、在应用程序的配置文件web.xml中<web-app>增加
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>二、代码修改
1、JSP文件的修改
在首句加上:
<%@ page contentType="text/html;charset=GBK"%>
以显示中文2、new String((request.getParameter("caseData")).getBytes("ISO-8859-1"),"GBK");JDBC源:
jdbc:mysql://localhost/Test?autoReconnect=true&useUnicode=true&characterEncoding=GB2312
请问 YuLimin,jsp里new String((request.getParameter("caseData")).getBytes("ISO-8859-1"),"GBK")为什么总是转成iso8859?
在jsp中,页面使用UTF-8的编码,页头应该是这样的
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
而页面中需要输出文字的位置,不管输出的是哪种语言,都用struts的<bean:message>标记来输出信息。如:
<bean:message key="AddDeptAndUserForm.title"/>
这个key就是struts的资源文件中配置的标签/值对的标签名。
struts的资源文件ApplicationResources.properties中的内容类似于:
AddDeptAndUserForm.title=Add Dept and User page
如果我们需要中文,那就复制一份这个文件,然后把其中的英文值改为中文的,再用java的native2ascii命令,把这个文件编码成一个中文资源文件ApplicationResources_zh.properties
编码后内容如:AddDeptAndUserForm.title=\u5f55\u5165\u90e8\u95e8\u548c\u7528\u6237\u4fe1\u606f\u754c\u9762这样处理后,struts就会自动根据用户的浏览器语言从我们提供的资源文件中选择不同的内容来输出,完成国际化的处理。最后一步,在web.xml加载一个spring提供的编码过滤器,如:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter> 现在,我们的程序不仅能根据浏览器语言显示不同语种的界面,而且也不用担心乱码问题,在action中不必再使用老式的new String((request.getParameter("caseData")).getBytes("ISO-8859-1"),"GBK");来进行繁琐的编码转换了。这样开发出来的程序易于修改,并且当用户要求修改页面上显示的一些专业词汇时,我们不用去寻找对应的jsp文件进行修改,只要统一的修改资源文件即可,避免对程序做出大的修改了。