解决中文数据存入数据库乱码, 页面乱码等问题

当数据库或页面出现中文乱码时通常需要从以下几个地方进行分析

1.页面编码

2.数据库连接语句(如果数据连接的properties文件编码与数据库编码格式不一致会导致存入数据库的数据乱码不论中文英文同意乱码)

  • 设置characterencoding为UTF-8 如jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF8
  • 如果使用Hibernate,那就把所有的配置文件头部的编码格式改成UTF-8。

3.Tomcat

  • 为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置: <Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443"  URIEncoding="UTF-8" />

4. struts2配置

  • struts2在配置struts.properties文件中加上struts.i18n.encoding=UTF-8 或者在struts.xml里加上<constant name="struts.i18n.encoding" value="UTF-8" />

在web.xml文件里配置filter

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>GBK</param-value>
  </init-param>
 </filter>
 
 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

5.数据库(mysql)

可以先输入查询语句SHOW VARIABLES LIKE ‘character_set_%‘;,查看所有的编码是否是UTF-8.

如果不是可以使用Server Instance Config 把默认的字符集设置为utf-8或者修改/MySQL/MySQL Server 5.0/my.ini中的default-character-set=gbk

character-set-server=gbk;

然后重新启动mysql的服务就行了

时间: 2024-07-29 03:02:55

解决中文数据存入数据库乱码, 页面乱码等问题的相关文章

运用.NIT将数据存入数据库、读取数据库(运用封装)陈老师作业

我基础不好,根据所学的知识,书本的例题修改的,也不知道我理解的是否符合老师要求 运用C#将数据存入数据库.并且可以读取数据库里的数据,此项目我运用了封装.我运用了一个窗体将数据存读数据. 我首先创建了一个数据库,库名“数学题库” ,然后创建了一个表“tiku1”, 添加一个类Class1 class Class1    {        public string strCon = @"Data Source=.;Initial Catalog=数学题库;Integrated security=

解决mysql无法插入中文数据及插入后显示乱码的问题

(1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!! (2开始解决问题: 第一步:找到安装mysql的目录找到 my.ini 文件: 第二步:使用记事本打开my.ini文件 , 找到这个地方 看看default-character-set 是不是 utf8不是的话 改为utf8即可 1 # MySQL client library initialization. 2 [client] 3 port=3306 4 [mysql] 5 default-char

VC中使用CFile正确的追加写中文数据到文件不出现乱码-unicode字符集

CFile saveFile; CString file_name = getFileName(); BOOL isOpenOK = saveFile.Open(file_name, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, NULL); if (false == isOpenOK) { MessageBox(L"文件打开失败!"); return; } //是文件保存为unicode格式 //为了uni

解析Excel文件并把数据存入数据库

前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决,下面我把自己用"POI"解析的方法总结出来供大家参考(我用的是SpingMVC和hibernate框架). 1.web.xml中的配置文件 web.xml中的配置文件就按照这种方式写,只需要把"application.xml"换

将DataGridview中的数据存入数据库

在机房收费的时候我们都会用到DataGridView控件,用来显示从数据库中返回的数据.如何用DataGridView将数据存入到数据库,而且是存入到字段与数据库中不一致的表中呢? 前提介绍 为了将如下的11张表中数据录入到数据库中 这是我们设计的数据库,将部门.公司.表类型.行字段.列字段分别抽象成不同的表,然后用他们的主键作为联合主键形成T_dataTable表 这是显示出的DataGridView形式,开始默认为0 Load事件 将DataGridview的标题整体右移一个单位格,将空出的

MySQL数据库:完美解决中文数据乱码

首先声明:这是解决我的问题的方法,个人笔记,仅供参考. 环境:win server 2003 + MySQL5.0 + Navicat 10 问题现象:通过Java WEB 页面提交数据到MySQL数据,发生中文乱码,每个汉字显示为?号,例如:"标题1"显示为"??1". 解决方法:找到MySQL5.0安装目录下编辑打开my.ini文件,修改为: [client] port=3306 [mysql] default-character-set=utf8 # The

解决backbone url请求中参数有中文,存入数据库是乱码

最近项目用到了backbone 做前后端的分离方案,遇见了中文乱码问题,解决方案总结如下: 假设需要存一条课程记录到后台 model定义如下: var AddCourse= Backbone.Model.extend({ url:path+"/course/add", parse : function(response){ return response.data; } }); encodeURIComponent 函数 将中文的内容进行编码 $('#addCourseBtn' ).c

SpringMVC GET请求中文数据传递到Server端乱码

1.问题描述: 通过getJSON方法,讲中文传递到Server端时,中文为乱码 2.解决办法 通过查找资料,好多都说配置web.xml <filter> <filter-name>SpringEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param&

Pandas使用to_csv保存中文数据用Excel打开是乱码

关于这个问题还是困扰了很久,我生成了一些样本数据,打算保存到csv文件,之后用pandas的命令: 1 # data是DataFrame的格式 2 data.to_csv('./data/myfile.csv') 这样的方式保存后,你用自己的exel打开该文件,一堆乱码,怎么办?使用如下方式解决 # data是DataFrame的格式 data.to_csv('./data/myfile.csv', encoding='utf_8_sig') 以后只要保存含有中文字符的这样存就可以了 原文地址: