在下在用tomcat5.0+eclipse+mysql5+struts1.1写一个程序时,在表单输入中文,或者日文等,我在eclipse调试时看到form中相应的属性得到的是乱码,存到数据库里再取出来,再显示在页面中也是乱码,我的mysql里设了 utf-8,jsp页面中也设置了 utf-8字符集,怎么处理用户输入各种编码的字符而不产生乱码问题?有哪位高手能帮我解决一下?
还有就是我用<bean:write>显示了一条记录,在这条记录后面有个删除按钮,我想删掉这条记录,请问怎么获得要删除这条记录所需要的关键字值?回答得好一定加分~~
还有就是我用<bean:write>显示了一条记录,在这条记录后面有个删除按钮,我想删掉这条记录,请问怎么获得要删除这条记录所需要的关键字值?回答得好一定加分~~
解决方案 »
- 整合SSH2, 报错以下详细信息
- jsp 运行报错
- finereport 累计奖金不好使!!
- 请人改个对联代码
- hibernate问题org.hibernate.hql.ast.tree.SqlNode
- 导入不了servlet的包,郁闷,解决给分
- java.sql.SQLException: Communication link failure: Bad handshake
- 救命啊!谁来帮我找找错啊!
- 紧急求助,在线等待:jquery中的load方法
- struts问题:总报找不到这个类:org.apache.struts.taglib.bean.SizeTei
- 那位可以把数据库为mysql的分页程序改成oracle9i的?多谢各位
- 保留小数位数?
删除用多选框吧.多选框的value="<bean:wirte name="xxx" property="id">",就是把ID传到后台处理.
可是修改后,我再调试原来的程序,在执行executeQuery()时发生了异常,请高手再指教,谢谢。
byte temp[] =str1.getBytes("ISO-8859-1");
accounts=new String(temp);
out.print(accounts);其中的"Username"是表单相应的名字,用上面的方法就可以解决表单传过来的乱码了
1.get方式的解决方法是:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75 enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
最后那加入URIEncoding='GBK' 就可以了。
2.加入过滤器能够解决的问题,针对post提交有效在%Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes\filters下找到
SetCharacterEncodingFilter.java ,之后在你的工程中建一个名filters的包,包里就放SetCharacterEncodingFilter.java,之后在Web.XML中,加入 <filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.cecp.filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter><filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>以上我已经在我的电脑上测试成功~!
<property name="connection.url">
jdbc:mysql://localhost/bookstoressh
useUnicode=true&characterEncoding=gb2312
</property>
这里使用mysql里面的bookstoressh数据库,请注意url中的useUnicode=true&characterEncoding=GB2312.这是mysql特有的
这个是我一个朋友总结的,给你贴出来,希望对你有点帮助吧
另一种很土的方法:对request.getParameter('para') 的字符转码
建库时要加上使用编码,如下SET NAMES 'gbk';
CREATE DATABASE `databaseName`
CHARACTER SET 'gbk'
COLLATE 'gbk_chinese_ci';USE `databaseName`;
SET NAMES 'gbk';
然后导入你的表.