日期:2014-05-20  浏览次数:20732 次

乱码灵异问题
前台使用HTML (utf-8编码)
后台使用Struts2 (utf-8编码)
前台与后台使用AJAX通讯 (也是utf-8)
数据库使用MySql (utf-8编码)
Eclipse的工程使用utf-8编码
所有的东西都是使用utf-8编码。

1. 如果Tomcat是从Eclipse中启动的,从HTML传到Struts2再保存到数据库中,所有的中文都不会乱码,在MySql中看到的中文是正常的。

2. 如果Tomcat是直接从终端使用命令启动,这时从HTML传到MySql的中文,在MySql全是乱码,但页面中可以正常显示这些中文。可是这时页面中显示的中文如果是在Eclipse启动Tomcat时输入的,则是乱码。

这问题很奇怪,估计是终端的编码影响了Tomcat.但是我的终端是支持utf-8的。

------解决方案--------------------
struts正在学,帮顶。祝楼主好运
------解决方案--------------------
帮顶,还没遇到过这种问题
------解决方案--------------------
应该还是编码不统一造成的

看看jsp页面及mysql配置的driver中的编码设置

jsp编码
HTML code

<%@ page language="java" contentType="text/html; charset=utf-8"  
    pageEncoding="utf-8"%>

------解决方案--------------------
jdbc:mysql://localhost:3306/ssh?characterEncoding=utf8

------解决方案--------------------
请问你Eclipse用的是什么插件启动tomcat? myeclipse还是wtp?
------解决方案--------------------
应该还是编码不一致的问题,应该是问题出在tomcat中
------解决方案--------------------
告诉你个方法 正确的 在后台 用一个字符转换的方法 从页面获取的 或者从数据库读取的都通过转换方法转换 那就OK了 我之前开发的时候都是这样弄的。 也是MySQL不过具体的代码我现在手上没有。
------解决方案--------------------
在后台写一个字符转换器
------解决方案--------------------
将整个项目的编码设置为utf-8
------解决方案--------------------
又是乱码问题 全设置层utf-8 再写个过滤器!
------解决方案--------------------
楼主 。。上面的人都说了。。我还能说什么呢。。。

。。。


------解决方案--------------------
探讨
你们所说的,我全用了utf-8编码。
Eclipse使用的Tomcat插件是TomcatPlugin: http://www.eclipsetotale.com/tomcatPlugin.html#A3
郁闷的是使用Eclipse启动Tomcat没有乱码问题,Eclipse的workspace的编码使用的也是utf-8.
从终端启动就出现了。

------解决方案--------------------
TomcatPlugin貌似就是用的tomcat目录中的配置文件。