完美解决mysql5.5无法插入中文数据及插入后显示乱码(亲测成功)
mysql数据库乱码问题
数据库读出乱码解决
一、分析常见数据库问题
修改MYSQL数据库,数据表,字段的编码(解决JSP乱码)
要解决JSP乱码,首先就要了解JSP乱码的原因
1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码
2.在PHPMYADMIN或mysql-front等系统创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码
3.创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码
4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成JSP 页面乱码
5.用户提交JSP页面的编码与显示数据的JSP页面编码不一致,就肯定会造成JSP页面乱码.
如用户输入资料的JSP页面是big5码,显示用户输入的JSP页面却是gb2312,这种100%会造成JSP页面乱码
6.字符集不正确
要注意:
1.平时你在某些网站看到的文字可能有几种编码,如你看到一个繁体字,它有可能是big5编码,也有可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点.
如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法就是(1)将网站编码设为utf-8,这样可以兼容世界上所有字符,(2)如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为GBK,
MySQL中文乱码问题的解决方法
MySQL中文乱码问题的解决方法
在使用MySQL数据库过程中,经常会遇到中文乱码的问题。这是由于
MySQL默认使用的字符集是Latin1,而大部分中文系统使用的是UTF-8字符集所致。本文将介绍在MySQL中解决中文乱码问题的几种方法。
一、修改MySQL配置文件
MySQL配置文件(f)是MySQL服务器的设置文件,通过修改该文件可
以改变MySQL的默认字符集。在Linux系统中,该文件通常位于/etc/mysql/f
或者/etc/f。在Windows系统中,该文件通常位于MySQL安装目录下的
my.ini文件。
步骤如下:
1. 找到f或my.ini文件并打开。
2. 在[mysqld]部分添加或修改以下内容:
```
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
```
3. 保存文件并重启MySQL服务。
二、修改数据库、数据表、字段字符集
如果修改MySQL配置文件没有解决中文乱码问题,可以尝试直接修改数据库、数据表、字段字符集。
1. 修改数据库字符集
可以使用ALTER DATABASE语句修改数据库的字符集。例如:
```
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE
utf8_general_ci;
```
2. 修改数据表字符集
可以使用ALTER TABLE语句修改数据表的字符集。例如:
```
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
数据库表中记录显示中文乱码解决
三种mysql建表乱码的解决方法
作者:温杰
MySql建表乱码问题,默认mysql建表格式为latin(瑞典语),如何设置为能够表示中文的数据库表使我们需要解决的一个很重要的数据库设计问题。
方法1、
在表中输入中文会乱码,需要在建表的时候如下
CREATE TABLE Q3_City
(
city_id INTEGER NOT NULL,
name VARCHAR(64)NOT NULL,
region_id INTEGER NOT NULL,
user_id INTEGER NOT NULL
)
ENGINE=InnoDB DEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;
最后一段添加表的编码格式,该操作比较繁琐。
方法2、在安装mysql的时候没有指定编码格式
可以在f的mysqld字段下加入
default-character-set=utf8
default-storage-engine=MyISAM
default-collation=utf8_bin
init_connect='SET NAMES utf8'
有人这么做,但是本人的虚拟机Linux系统下的MySql不能通过此方法来实现。
方法3、
在安装mysql的时候指定编码格式(建议大家使用这种方法)如果指定了编码格式第2种方法则无效。
./configure--prefix=/usr/local/mysql--enable-assembler--with-mysqld-ldflags=-all-static --with-charset=utf8
安装配置Mysql5.5并且完美解决中文乱码问题
安装配置Mysql5.5并且完美解决中文乱码问题•启动服务
windows下DOS命令窗口输入指令:
查看服务是否启动:net help services
启动mysql服务:net start mysql
停止mysql服务:net stop mysql
linux下在bash下,输入指令:
查看服务状态:service mysqld status
启动mysql服务:service mysqld start
停止mysql服务:service mysqld stop
•登陆
mysql -u[这里输入用户名] -p[这里输密码]
•忘记管理员密码
先停止mysql服务
然后输入:mysqld --skip-grant-tables,此时mysqld服务会被启动
在命令行输入:mysql -uroot,以不用密码的方式登录root
输入:update er set password=PASSWORD('[这里输入你的新密码]') where user='root'
输入:flush privileges
退出,重启mysql服务,用新密码即可登录
•创建数据库
用root账户登录mysql控制台
查看所有数据库:show databases;
创建数据库:create database openfire;
创建数据库管理员并分配权限:grant all on openfire.* to openfire@localhost identified by "openfire"
切换数据库:use openfire;
查看当前数据库中所有的表:show tables;
数据库中乱码问题解决方案
数据库中乱码问题解决方案
1. 介绍
在数据库中,乱码问题是一个常见的挑战。当数据被存储、处理或显示时出现乱码,会给用户带来困扰,并可能导致数据不正确地被处理或显示。本文将探讨数据库中乱码问题的原因,提供解决方案以避免或解决这些问题。
2. 乱码问题的原因
乱码问题可能出现在数据库的各个环节,例如数据存储、传输、处理和显示等。以下是一些常见的乱码问题的原因:
2.1 字符集不匹配
数据库使用不同的字符集来存储和处理数据。如果数据的字符集与数据库或应用程序的字符集不匹配,就会导致数据乱码问题。
2.2 编码转换错误
在数据传输或处理过程中,可能会进行字符编码的转换。如果转换过程中存在错误,就会导致数据乱码问题。
2.3 特殊字符处理不当
一些字符具有特殊的含义或用途,如果在处理这些字符时不加以考虑,就会导致数据乱码问题。例如,特殊字符在SQL查询中使用时可能引起问题。
3. 解决方案
为了解决数据库中的乱码问题,我们可以采取以下一些措施:
3.1 使用统一的字符集
确保数据库、应用程序和客户端使用相同的字符集,并将所有数据存储在统一的字符集中。这样可以避免字符集不匹配导致的乱码问题。
3.2 确保正确的编码转换
在进行字符编码转换时,需要确保使用正确的转换算法和目标字符集。可以使用一些常见的编码库或工具来进行转换,例如Iconv。
3.3 转义特殊字符
在处理包含特殊字符的数据时,需要进行适当的转义处理。例如,在执行SQL查询时,可以使用参数化查询或转义字符来避免特殊字符引起的问题。
3.4 设置正确的字符集和校对规则
在创建数据库和表时,需要明确指定正确的字符集和校对规则。这样可以确保数据被正确地存储和处理,从而避免乱码问题的出现。
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
关于Mysql中⽂乱码问题该如何解决(乱码问题完美解决
⽅案)
最近两天做项⽬总是被乱码问题困扰着,这不刚把mysql中⽂乱码问题解决了,下⾯⼩编把我的解决⽅案分享给⼤家,供⼤家参考,也⽅便以后⾃⼰查阅。
⾸先:
⽤show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置
如果查看出来都是gbk2312,或 gbk,那么就只能⽀持简体中⽂,繁体和⼀些特殊符号是不能插⼊的,我们只有修改字符集为UTF-8,
修改⽅法如下:
⽤记事本或UitraEdit打开mysql数据库安装⽬录下的my.ini⽂件打开,然后Ctrl+F搜索default-character-set,将后⾯的字符集修改为UTF8,注意要修改两个地⽅,⼀个事客户端的,⼀个是服务端的。
然后保存,重启mysql服务、、进去继续⽤show variables like “%colla%”;show varables like “%char%”;着两条语句查询⼀下字符集。如图:
到此就配置完成了。
注意:
如果以前建有数据库没有删除的请⽤ show database 数据库名;和 show create table 表名;查看⼀下数据库和表的字符集是否为UTF8 ,因为修改my.ini⽂件,它不能修改原来数据库的的字符集。在命令⾏下⾯可以⽤
alter database 数据库名 character set “字符集”;命令来修改数据库字符集
还有⼀点要注意的是,修改为UTF8以后,在命令⾏下⾯中⽂是乱码的,只输出到页⾯或控制台是正常的,这个问题我也上⽹查了⼀下,貌似命令⾏下⾯不⽀持UTF8,我也不太清楚。
MySQL中的字符集转换与乱码问题解决方法
MySQL中的字符集转换与乱码问题解决方法
在使用MySQL数据库时,我们经常会遇到字符集转换和乱码的问题。正确地处理字符集转换和乱码是确保数据库存储和检索数据的关键。本文将探讨MySQL 中的字符集转换与乱码问题,并提供解决方法。
一、字符集与编码
首先,我们需要了解字符集和编码的概念。字符集是一组字符的集合,而编码则是将字符集中的字符映射到二进制数据的规则。常见的字符集有ASCII、Unicode和UTF-8等,而编码方式有UTF-8、GBK、Latin1等。
在MySQL中,字符集用来定义存储和处理文本数据的规则,而编码则是实际使用的二进制编码。如果字符集和编码不一致,就会导致数据存储和检索时出现乱码问题。
二、MySQL中的字符集设置
在MySQL中,字符集设置是通过修改服务器、数据库、表和列的字符集属性来实现的。
1. 服务器字符集设置
在MySQL配置文件(f)中,可以设置服务器的默认字符集和排序规则。通过编辑f文件,找到[mysqld]节点,在其下方添加如下内容:```shell
[mysqld]
...
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
...
```
这样,服务器的默认字符集就被设置为utf8mb4,并且排序规则为
utf8mb4_unicode_ci。
2. 数据库字符集设置
在MySQL中,每个数据库都有一个特定的字符集和排序规则。可以通过以下命令创建一个指定字符集的数据库:
```sql
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE
Mysql中文乱码问题完美解决方案
转载:Mysql中文乱码的解决方法
第一种方法,很精辟的总结:
经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:
WINDOWS 下导入应该这样
使用MYSQL的命令
在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称
只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
数据库字符集为utf-8
连接语句用这个
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效。
第二个方法:很不错的解说,可以试一下
mysql乱码处理总结:
(1)java中处理中文字符正常,在cmd client中显示乱码是字符集的问题.
(2)字段长度设置够长,但插入中文字符时提示
MySQL字符集GBK、GB2312、UTF8区别解决MYSQL中文乱码问题
MySQL字符集GBK、GB2312、UTF8区别解决MYSQL中
⽂乱码问题
character-set-server/default-character-set:服务器字符集,默认情况下所采⽤的。
character-set-database:数据库字符集。
character-set-table:数据库表字符集。
优先级依次增加。所以⼀般情况下只需要设置character-set-server,⽽在创建数据库和表时不特别指定字符集,这样统⼀采⽤character-set-server字符集。
character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进⾏编码。character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进⾏编码。
在客户端,如果没有定义character-set-results,则采⽤character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。
要处理中⽂,则可以将character-set-server和character-set-client均设置为GB2312,如果要同时处理多国语⾔,则设置为UTF8。
解决乱码的⽅法是,在执⾏SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集。
character_set_client:客户端的字符集。
character_set_results:结果字符集。
navicat中mysql中文数据显示乱码
navicat中mysql中⽂数据显⽰乱码
本⼈开发⼯具idea+navicat+mysql,在测试dao层时,插⼊到mysql中的中⽂数据在navicat⼯具中显⽰乱码。
idea、mysql本⾝有关编码的问题都调试过了,就是navicat中显⽰出现乱码,最后确定为是navicat⼯具的问题。
最后在编辑数据库连接的时候选择⾃动选项终于解决了这个问题。
主要是针对navicat中显⽰数据时出现中⽂乱码,出现中⽂乱码的情况有很多,⽹上有很多关于idea或eclipse编码的更改,以及mysql数据库本⾝的更改,在此不再累述。
MySQL5.6中文乱码问题
MySQL5.6中文乱码问题
要了解详细信息,请百度。
解决方案:
1进入MySQL服务
第一个横线:我的安装路径
第二个横线:进去MySQl服务命令
第三个横线:叫你输入密码,(空密码直接回车)
2.1查看自己的字符集:(下图是正常的,即utf8字符集比较好)
第一个横线:查询命令,分号不要忘了
第二个横线:
第三个横线:只要二三正常就行,
不正常的表现之一是,二三横线处的值是binary
2.2查看另一个属性
3如果不是上面显示的那么很可能就会出问题了
1、复制my-default.ini,重命名为
my.ini
2、打开my.ini
插入左边文字,保存
重启MySQL服务,就行啦,你可以再次安装上面步骤,再次查看字符集
MySQL生僻字插入失败的处理方法(Incorrectstringvalue)
MySQL⽣僻字插⼊失败的处理⽅法(Incorrectstringvalue)
最近,业务⽅反馈有个别⽤户信息插⼊失败,报错提⽰类似"Incorrect string value:" F0 A5 ..... " 看这个提⽰应该是字符集不⽀持某个⽣僻字造成的。
下⾯是在虚拟机⾥复现的场景:
step1、模拟原始表结构字符集环境:
use test;
CREATE TABLE `t1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '姓名',
`nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称',
PRIMARY KEY (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员卡';
step2、插⼊⽣僻字(使⽤sqlyog模拟):
1、先模拟线上环境,设置下字符集:
我们尝试插⼊王(在word⾥⾯按住alt,输⼊152964)。可以看到插⼊失败了。
step3、修改real_name的字符集:
use test;
alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;
MySQL插入中文错误:java.sql.SQLException:Incorrectst。。。
MySQL 插⼊中⽂错误:java.sql.SQLException :Incorrectst 。。
。
异常如下:
出现场景
本⼈使⽤ JDBC 连接数据库进⾏插⼊操作时,出现java.sql.SQLException: Incorrect string value:...异常,可以看出来异常提⽰为 sql 语句字符串值错误,这个情况还有些特殊,⼀般情况下可以插⼊中⽂,但是我插⼊我⾃⼰的名字就**,⽆奈连计器也可能认不得我的名字中那个字,所以找了解决办法。
分析原因
很简单的脑路:中⽂问题那就是编码,所以我使⽤如下语句查看了下出现问题的 ’name‘ 字段的编码
是 gb2312 ,⽽我使⽤的 IDEA 是 UTF-8 编码,所以就冲突了
解决
通过如上 sql 命令,修改字段的编码,最终解决问题SHOW FULL COLUMNS FROM customers;
alter table 表名 change 原字段名 新字段名 字段类型 character set utf8
Mysql 乱码的解决
Mysql 乱码的解决
Mysql 乱码的解决
首先在命令行下进入mysql编辑模式输入
mysql>
show variables like ‘char%’; 查看数据库字符集设置
client、connection、result 和命令行客户端相关(windows 下命令行客户端必须要设置gbk )
database server system 和服务器相关字符集(system字符集不可修改)
* 实际开发中建议大家将database 和server 字符集设置为utf8
修改完database server system 和服务器相关字符集后需要重新启动mysql才能生效
在服务里重启就可以,还可以,在命令行:停止命令:net stop mysql
启动命令:net start mysql
mysql核心配置文件my.ini 如果linux f
[mysql] 主要配置命令行客户端参数default-character-set=gbk ---- 影响client、connection、result
[mysqld] 配置服务器参数character-set-server=utf8 ----- 影响database server
备注:如是win7系统的话,因为权限问题不让修改,你可以把文件拷贝出来,修改完在放回去,(主要是是mysql安装在C盘会出现这样的问题)
如果服务器server 字符集已经设置utf8 建立数据库数据表默认utf8 ----- 插入数据一定没有乱码
如果服务器没有设置server字符集,默认latin1 , 建立数据库指定字符集utf-8 建表指定字符集utf-8 (有乱码)
mysql 插入中文数据乱码解决方案
mysql 插入中文数据乱码解决方案
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。下面将分两部分,分别设置服务器编码和数据库、数据表与连接部分的编码,从而杜绝中文乱码的出现。
一、服务器编码设置
服务器编码设置方法有二:
一是安装mysql时,其中会有一个步骤选择编码方式,此时选择utf8即可。如果不选择,默认的编码是latin1;
二是在安装玩mysql之后,手动修改其配置文件,如下:
(1)修改MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件),(需要关闭mysql服务),(如果本身没有该文件,自己添加一个亦可)my.ini文件进行如下修改:=================================================================================
修改my.ini前显示结果
===================================================================================
mysql> show variables like 'character%';
+----------------------------------------+------------------------------------------------+
MySQL中文乱码
mysql字符编码是版本4.1引入的,支持多国语言,而且一些特性已经超过了其他的数据库系统。我们可以在MySQL Command Line Client 下输入如下命令查看mysql的字符集mysql> SHOW CHARACTER SET;+----------+-----------------------------+---------------------+--------+| Charset | Description | Default collation | Maxlen |+----------+-----------------------------+---------------------+--------+| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 || dec8 | DEC West European | dec8_swedish_ci | 1 || cp850 | DOS West European | cp850_general_ci | 1 || hp8 | HP West European | hp8_english_ci | 1 || koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 || latin1 | cp1252 West European | latin1_swedish_ci | 1 || latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 || swe7 | 7bit Swedish | swe7_swedish_ci | 1 || ascii | US ASCII | ascii_general_ci | 1 || ujis | EUC-JP Japanese | ujis_japanese_ci | 3 || sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 || hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 || tis620 | TIS620 Thai | tis620_thai_ci | 1 || euckr | EUC-KR Korean | euckr_korean_ci | 2 || koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 || gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 || greek | ISO 8859-7 Greek | greek_general_ci | 1 || cp1250 | Windows Central European | cp1250_general_ci | 1 || gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 || latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 || armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 || utf8 | UTF-8 Unicode | utf8_general_ci | 3 || ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 || cp866 | DOS Russian | cp866_general_ci | 1 || keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 || macce | Mac Central European | macce_general_ci | 1 || macroman | Mac West European | macroman_general_ci | 1 || cp852 | DOS Central European | cp852_general_ci | 1 || latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 || cp1251 | Windows Cyrillic | cp1251_general_ci | 1 || cp1256 | Windows Arabic | cp1256_general_ci | 1 || cp1257 | Windows Baltic | cp1257_general_ci | 1 || binary | Binary pseudo charset | binary | 1 || geostd8 | GEOSTD8 Georgian | geostd8_general_
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.安装数据5.5 D:\Program Files\安装包\mysql-5.5.20-win32.msi
根据提示点击下一步,需要特别注意,在选择编码格式的时候一定要 选utf8,切忌不可使用系统自带lasten1,否则后面会很麻烦。
2.打开安装目录C:\Program Files\MySQL\MySQL Server 5.5\my.ini
将对应的last1都改为utf8;并在 client 和mysqid的port下都添加一句
default-character-set=utf8
3.在数据库中
show Variables like'%set%';
敲如下命令;SET character_set_database=utf8;
SET character_set_server=utf8;
SET character_set_client=gbk;
SET character_set_connection=gbk;
之后完所有命令,现在就应该可以插入中文了,
但是先别高兴再早奥!!如果我没猜错的话,现在的确可以插入中文了,但是从数据库里读出的中文数据一定是乱码吧???怎么办??
在试试下面这句:
SET character_set_results=gbk;
现在你查询出来的可能就不是乱码了!
但是通常需要每次都得执行上面的语句才能将乱码变为正常!虽然有点麻烦,但起码也比插入不了数据库强是吧,并且这种方法,在用eclipse JDBC连接数据库的时候,是不会出现乱码的!