9 个解决方案
#1
可能mysql的连接 如这样 localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 没有设置编码
#2
设置了characterEncoding=UTF-8
#3
从前台传到后台的字段转一下码类似这样String str = new String(planFileName.getBytes("ISO8859-1"), "UTF-8");
planFileName就是从前台往后台传的字段
planFileName就是从前台往后台传的字段
#4
一般从页面传过来的都是ISO8859-1格式的
#5
你后台输出下参数值,先确定是JSP到后台乱码,还是后台到数据库乱码。如果前者,可以在处理器进行转码,如果是后者,看看你的数据库编码和你项目编码是否一致
#6
关键是要找到乱码出现在哪个地方
一般就两个地方:从浏览器提交到服务端、服务端存储到数据库
所以,楼主应该在数据存储之前写一下日志进行调试
一般就两个地方:从浏览器提交到服务端、服务端存储到数据库
所以,楼主应该在数据存储之前写一下日志进行调试
#7
最好把jsp的完整代码贴出来!
#8
如果是页面向后台提交的问题就让request调用sendEcord方法
如果是数据库向页面的问题就得看看是不是数据库编码的问题,
我个人推荐的是
<filter>
<filter-name>CharacterFilter</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>
<!-- 映射路径 -->
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
写在web.xml文件中
mybatis的话可以把URL设置成这样的<property name="url" value="jdbc:mysql://127.0.0.1:3306/phone?useUnicode=true&characterEncoding=utf-8" />
主要是问号以后的
如果是数据库向页面的问题就得看看是不是数据库编码的问题,
我个人推荐的是
<filter>
<filter-name>CharacterFilter</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>
<!-- 映射路径 -->
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
写在web.xml文件中
mybatis的话可以把URL设置成这样的<property name="url" value="jdbc:mysql://127.0.0.1:3306/phone?useUnicode=true&characterEncoding=utf-8" />
主要是问号以后的
#9
jsp向mysql数据库插入中文乱码 但是读取mysql手动插入的中文时正常,这种问题,应该是request端解码网页发送过来的信息时出现乱码现象,注意request解码默认是ISo-8859-1,比较好的建议是将jsp里面表单的提交方式改为POST方式,那么很容易解决乱码现象,(request.setCharacterEncoding("UTF-8")),你可以将获取到的信息打印出来看·看看是否乱码就能大概确定什么定·地方了
#1
可能mysql的连接 如这样 localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 没有设置编码
#2
设置了characterEncoding=UTF-8
#3
从前台传到后台的字段转一下码类似这样String str = new String(planFileName.getBytes("ISO8859-1"), "UTF-8");
planFileName就是从前台往后台传的字段
planFileName就是从前台往后台传的字段
#4
一般从页面传过来的都是ISO8859-1格式的
#5
你后台输出下参数值,先确定是JSP到后台乱码,还是后台到数据库乱码。如果前者,可以在处理器进行转码,如果是后者,看看你的数据库编码和你项目编码是否一致
#6
关键是要找到乱码出现在哪个地方
一般就两个地方:从浏览器提交到服务端、服务端存储到数据库
所以,楼主应该在数据存储之前写一下日志进行调试
一般就两个地方:从浏览器提交到服务端、服务端存储到数据库
所以,楼主应该在数据存储之前写一下日志进行调试
#7
最好把jsp的完整代码贴出来!
#8
如果是页面向后台提交的问题就让request调用sendEcord方法
如果是数据库向页面的问题就得看看是不是数据库编码的问题,
我个人推荐的是
<filter>
<filter-name>CharacterFilter</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>
<!-- 映射路径 -->
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
写在web.xml文件中
mybatis的话可以把URL设置成这样的<property name="url" value="jdbc:mysql://127.0.0.1:3306/phone?useUnicode=true&characterEncoding=utf-8" />
主要是问号以后的
如果是数据库向页面的问题就得看看是不是数据库编码的问题,
我个人推荐的是
<filter>
<filter-name>CharacterFilter</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>
<!-- 映射路径 -->
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
写在web.xml文件中
mybatis的话可以把URL设置成这样的<property name="url" value="jdbc:mysql://127.0.0.1:3306/phone?useUnicode=true&characterEncoding=utf-8" />
主要是问号以后的
#9
jsp向mysql数据库插入中文乱码 但是读取mysql手动插入的中文时正常,这种问题,应该是request端解码网页发送过来的信息时出现乱码现象,注意request解码默认是ISo-8859-1,比较好的建议是将jsp里面表单的提交方式改为POST方式,那么很容易解决乱码现象,(request.setCharacterEncoding("UTF-8")),你可以将获取到的信息打印出来看·看看是否乱码就能大概确定什么定·地方了