页面数据保存到数据库成乱码问题?????????

東刀人 2011-09-05 04:41:49
我用的是struts1做的 从数据库中读中文没有问题,把页面input中的数据在form获取的时候就已经成乱码了
保存到数据库那肯定也是乱码,这个问题如何来解决呢?
如何把input中的中文让form获取时不变乱码???
请高手们指点!!!!!!!!!!!
...全文
571 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnmmiioo 2012-08-22
  • 打赏
  • 举报
回复
在struts.xml中加<constant name="struts.i18n.encoding" value="gbk"/>
woniu4500 2011-09-06
  • 打赏
  • 举报
回复
request里也要设置一下试试

首先要保证从request获取的值不是乱码
luyun2011 2011-09-06
  • 打赏
  • 举报
回复

页面上设置request.setCharacterEncoding("utf-8");
form表单加上method="post"
superpole 2011-09-06
  • 打赏
  • 举报
回复
数据库连接字符串添加useUnicode=true&characterEncoding=UTF-8
例如URL=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
数据库的编码方式也要是UTF-8
東刀人 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 shuwei003 的回复:]
我遇到过一次,是通过修改tomcat的配置文件解决的,也是编码问题,你们可以试试:

XML code


<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-……
[/Quote]
大侠,这样试了也没有啊,有没有更好的解决方法啊???急 啊!!!!
東刀人 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 renhuihhh 的回复:]
用的什么数据库? mysql 对吧? 要更改mysql的 字符集
[/Quote]
是sqlserver2008 如何设置编码?
f504501983 2011-09-06
  • 打赏
  • 举报
回复
2楼正解
renhuihhh 2011-09-06
  • 打赏
  • 举报
回复
用的什么数据库? mysql 对吧? 要更改mysql的 字符集
五哥 2011-09-06
  • 打赏
  • 举报
回复
String param = request.getParameter("param");
param = new String(param .getBytes("ISO-8859-1"),"UTF-8");

应该可以

我是在js中 用encodeURI(encodeURI(supField )) ,
然后 在Action中通过
java.net.URLDecoder.decode(str);得到
wanhuijie1991 2011-09-06
  • 打赏
  • 举报
回复
LZ看下数据库的编码格式
奋斗的小鸟V 2011-09-06
  • 打赏
  • 举报
回复
同上,楼上的都解决了。
livesguan 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chrishuang 的回复:]

引用 5 楼 feifei_1989 的回复:

可以做一个过滤器 过滤器的编码方式要和你页面的meta中的编码方式要一致
如果实在不行:就用

String param = request.getParameter("param");
param = new String(param .getBytes("ISO-8859-1"),"UTF-8");

转码一下


这个……
[/Quote]


param = new String(param .getBytes("ISO-8859-1"),"UTF-8");
变为GBK,或者gb2312
然后把param打印出来,看一下还是不是乱码.
東刀人 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 zzg890926 的回复:]
你的页面编码得和你数据库的编码保存一直,不然在后台获取之后,转换成你的数据库编码。。
[/Quote]
请问一下,数据库的编码是在哪里设置呢??是这样吗?localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
还望赐教啊?
zzg890926 2011-09-06
  • 打赏
  • 举报
回复
你的页面编码得和你数据库的编码保存一直,不然在后台获取之后,转换成你的数据库编码。。
東刀人 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 vc_player 的回复:]
这个需要你调试下
最好能贴出部分你写的页面代码出来


是否确定,FROM在GET方法时已经是乱码了?


如果是,
可能是MYECLIPSE的STRUTS设置问题
[/Quote]
我在action中调试发现form中的中文值都是乱码的,所以说form在获取页面中的值时已经保存成乱码了
我的所以能设置的格式都是utf-8格式的,应该没有问题的!
vc_player 2011-09-06
  • 打赏
  • 举报
回复
这个需要你调试下
最好能贴出部分你写的页面代码出来


是否确定,FROM在GET方法时已经是乱码了?


如果是,
可能是MYECLIPSE的STRUTS设置问题
月亮床 2011-09-06
  • 打赏
  • 举报
回复
页面存储,你用的是什么编码?
東刀人 2011-09-06
  • 打赏
  • 举报
回复
各位大侠们说的喔小弟都试过了,都没用啊,这是怎么回事呢?
chrishuang 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 feifei_1989 的回复:]

可以做一个过滤器 过滤器的编码方式要和你页面的meta中的编码方式要一致
如果实在不行:就用

String param = request.getParameter("param");
param = new String(param .getBytes("ISO-8859-1"),"UTF-8");

转码一下
[/Quote]

这个可以
shuwei003 2011-09-05
  • 打赏
  • 举报
回复
我遇到过一次,是通过修改tomcat的配置文件解决的,也是编码问题,你们可以试试:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
加载更多回复(12)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧