jsp页面值存入mySql数据库乱码问题 总结 很实用!!!

来源:互联网 发布:数据库电话的数据类型 编辑:程序博客网 时间:2024/06/12 00:00

jsp页面添加中文数据到mysql数据库乱码问题

 

jsp页面中输入中文数据,保存到mysql数据库中是乱码,从数据库中读取数据后在jsp页面显示还是乱码,要解决此问题需从以下几个方面考虑:

 

1、获得mysql的字符集

 

查看mysql字符集的命令是:

 

 mysql> show variables like "character_set_%";

 

 

 

character_set_system总是utf-8

 

5个最好总是保持一致,


character_set_client   
character_set_connection
character_set_database 
character_set_results  
character_set_server

 

2、在jsp页面指定编码格式,保证跟mysql的字符集一致:

 

[java]viewplaincopy

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  

 

3web.xml添加字符编码过滤器,编码方式也要保证跟mysql的字符集一致:

 

[xhtml]viewplaincopy

  1. <!-- 著名 Character Encoding filter -->  
  2.     <filter>  
  3.         <filter-name>encodingFilter</filter-name>  
  4.         <filter-class>  
  5.             org.springframework.web.filter.CharacterEncodingFilter  
  6.         </filter-class>  
  7.         <init-param>  
  8.             <param-name>encoding</param-name>  
  9.             <param-value>utf-8</param-value>  
  10.         </init-param>  
  11.     </filter>  
  12.   
  13.     <filter-mapping>  
  14.         <filter-name>encodingFilter</filter-name>  
  15.         <url-pattern>*.do</url-pattern>  
  16.     </filter-mapping>  

 

注意:添加数据页面跟显示数据页面的编码格式要保持一致,不然的话就会出现添加到数据库中没乱码,从数据库中显示出现乱码的情况。

 

 

 

解决MySql数据乱码:

 

1写过滤器设置编码格式(格式和JSP页面的编码一样),或则在请求里面写request.setCharacterEncoding("编码方式");

 

2如果是查询出数据乱码,在链接的URL上加上编码格式(你这里加了,没问题);

 

3修改my.ini文件里面的default-character-set=您要的编码格式 (一共有两处,你查找一下改为一样的编码格式)

 

3如果是写入到数据库之后是乱码(前提是已经写了过滤器处理编码),修改my.ini文件里面查找sql-mode设置 sql-mode = 

 "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

0 0