MYSQL数据库中文乱码问题,导入的数据中文显示乱码,在保持数据不变的情况下,怎么转化为正常的中文
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL数据库中文乱码问题,导入的数据中文显示乱码,在保持数据不变的情况下,怎么转化为正常的中文相关的知识,希望对你有一定的参考价值。
我现在数据库的数据是从另一个mysql库中copy过来的,两个库的设置都一样,但是copy过来的中文确实乱码以下是My.ini文件里的设置以下是这个数据库的db.opt文件配置
编码不一致,你可以使用此命令查看编码方式,首先use一下数据库,show variables like '%char%';查看是不是gbk或gb2312等支持中文的,set names gbk就解决了,唉手指头都麻了。 参考技术A 设字符集了吗 参考技术B 编码问题, 编码不统一。mysql 中文乱码 如何恢复
数据库用的是GBK编码,不知怎么搞的现在部分中文变成了下面这样的 ~2\\U~2E~ ~M, ?VPPD~ 命令行下,php页面里都是这样了,请问如何恢复?
估计你存入的数据是UTF8编码。你可以先将数据都导出来。然后修改MYSQL的编码
再将数据导入进去。
推荐mysql的编码是utf8
这样呀好些。
导出:mysqldump
-u
root
-p
数据库名>导出的文件名
mysql>
show
variables
like
'character_set_%';
+--------------------------+-------------------------------+
|
Variable_name
|
Value
|
+--------------------------+-------------------------------+
|
character_set_client
|
gbk
|
|
character_set_connection
|
gbk
|
|
character_set_database
|
gbk
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
gbk
|
|
character_set_server
|
gbk
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
E:\Java\MySQL\share\charsets\
|
+--------------------------+-------------------------------+
mysql>
set
character_set_database=utf8;(主要修改这一行)
Query
OK,
0
rows
affected
(0.00
sec)
mysql>
show
variables
like
'character_set_%';
+--------------------------+-------------------------------+
|
Variable_name
|
Value
|
+--------------------------+-------------------------------+
|
character_set_client
|
gbk
|
|
character_set_connection
|
gbk
|
|
character_set_database
|
utf8
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
gbk
|
|
character_set_server
|
gbk
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
E:\Java\MySQL\share\charsets\
|
+--------------------------+-------------------------------+
然后再将数据导入:
mysql
-urrot
-p
数据库名<文件名;
你的PHP页面要设置成utf8
即可正常显示。
如果你是命令行下(不是mysql命令行形式的客户端)显示的是乱码。因为微软的命令行不支持utf8
编码
------
0---------------------补充---------------------
你将你的mysql编码贴出来瞧瞧吧
顺便贴出建库的编码,表的编码。
mysql>
show
create
database
test;
+----------+---------------------------------------------------------------+
|
Database
|
Create
Database
|
+----------+---------------------------------------------------------------+
|
test
|
CREATE
DATABASE
`test`
/*!40100
DEFAULT
CHARACTER
SET
utf8
*/
|
mysql>
show
create
table
test; 参考技术A PHP与MYSQL开发,乱码问题,要注意三个地方。
1.
连接数据库的字符集设置。
2.
数据表本身的字符集设置。
3.
页面meta的字符集设置。
以你的情况分析,
cmd命令行窗口是否为utf8(一般windows下命令行,窗口,并不是utf8,注意下这点)
连接时是否用的utf8
数据表是否为utf8
以上是关于MYSQL数据库中文乱码问题,导入的数据中文显示乱码,在保持数据不变的情况下,怎么转化为正常的中文的主要内容,如果未能解决你的问题,请参考以下文章
php显示中文乱码,phpmyadmin里的MySQL数据库中文乱码,如何解决?