mysql 乱码的有关问题
程序员文章站
2022-05-05 12:25:46
...
mysql 乱码的问题
网上查了一些资料,好像在我这里没有作用。
我现在mysql默认的是latin1
我创建了一个数据库 utf-general-ci,表和字段也是这个utf-general-ci,通过mysql命令查询:
show variables like 'collation_%';
-----------------------------------
collation_connection->latin1_swedish_ci
collation_database ->utf8_general_ci
collation_server ->latin1_swedish_ci
show variables like 'character_%';
-----------------------------------
character_set_client ->latin1
character_set_connection->latin1
character_set_database->utf8
character_set_filesystem ->binary
character_set_results ->latin1
character_set_sever ->latin1
character_set_system ->utf8
.php 都是utf-8编码,我在网站上直接读写中文正常,都正常。
但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。
现在可不可以把数据库在mysql里能正常存中文?
我现在想直接mysql命令行里查询,也能显示中文,该怎么做?
------解决方案--------------------
所以地方的编码保持一致
页面、数据库、表、程序源文件。。。。
------解决方案--------------------
你在mysql控制台里输入set names gbk
然后查询就是正常的了(windows) 如果是linux就set names utf-8
------解决方案--------------------
你试下将character_set_results设为utf8,终端输入:set character_set_results=utf8
因为我对比了我的跟你show variables like 'character_%';,刚才也测试了下,将我的character_set_results改为latin1,就出现乱码。
------解决方案--------------------
你的mysql客户端要用gbk,这个在mysql的配置文件中可以改,服务器端为Utf-8,客户端用gbk
------解决方案--------------------
估计是写入的时候不对吧。
不要操心mysql的内部处理,在任何mysql连接中都先set names 客户端字符集。
如果网站是utf8,那连接后第一件事先set names utf8。
如果字符集是互相兼容的,表里面保存的数据会被正确查出来并转成你的字符集。
------解决方案--------------------
你插入数据库的时候就已经是乱了吧.修改数据库编码后重新导入数据。话说我以前也用过一段时间你说的编码好像跟utf-8还没出现啥异像
------解决方案--------------------
mysql默认的是latin1
.php 都是utf-8编码,我在网站上直接读写中文正常,都正常。
这是正常的,需要的也是这用的效果
但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。
你是指在 mysql 控制台中查询吗?
那至少需要你的控制台环境是支持 utf-8 编码的
你在 gbk 环境中去看 utf-8 编码的内容,当然是乱码的
现在可不可以把数据库在mysql里能正常存中文?
我现在想直接mysql命令行里查询,也能显示中文,该怎么做?
要想不乱码,就需要使用与操作环境一直的语言编码
不要在数据库有内容的情况下修改 my.ini ,这样只会造成更大的混乱
------解决方案--------------------
如果不行的话建议重装一次,在装的时候注意选择编码的类型
网上查了一些资料,好像在我这里没有作用。
我现在mysql默认的是latin1
我创建了一个数据库 utf-general-ci,表和字段也是这个utf-general-ci,通过mysql命令查询:
show variables like 'collation_%';
-----------------------------------
collation_connection->latin1_swedish_ci
collation_database ->utf8_general_ci
collation_server ->latin1_swedish_ci
show variables like 'character_%';
-----------------------------------
character_set_client ->latin1
character_set_connection->latin1
character_set_database->utf8
character_set_filesystem ->binary
character_set_results ->latin1
character_set_sever ->latin1
character_set_system ->utf8
.php 都是utf-8编码,我在网站上直接读写中文正常,都正常。
但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。
现在可不可以把数据库在mysql里能正常存中文?
我现在想直接mysql命令行里查询,也能显示中文,该怎么做?
------解决方案--------------------
所以地方的编码保持一致
页面、数据库、表、程序源文件。。。。
------解决方案--------------------
你在mysql控制台里输入set names gbk
然后查询就是正常的了(windows) 如果是linux就set names utf-8
------解决方案--------------------
你试下将character_set_results设为utf8,终端输入:set character_set_results=utf8
因为我对比了我的跟你show variables like 'character_%';,刚才也测试了下,将我的character_set_results改为latin1,就出现乱码。
------解决方案--------------------
你的mysql客户端要用gbk,这个在mysql的配置文件中可以改,服务器端为Utf-8,客户端用gbk
------解决方案--------------------
估计是写入的时候不对吧。
不要操心mysql的内部处理,在任何mysql连接中都先set names 客户端字符集。
如果网站是utf8,那连接后第一件事先set names utf8。
如果字符集是互相兼容的,表里面保存的数据会被正确查出来并转成你的字符集。
------解决方案--------------------
你插入数据库的时候就已经是乱了吧.修改数据库编码后重新导入数据。话说我以前也用过一段时间你说的编码好像跟utf-8还没出现啥异像
------解决方案--------------------
mysql默认的是latin1
.php 都是utf-8编码,我在网站上直接读写中文正常,都正常。
这是正常的,需要的也是这用的效果
但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。
你是指在 mysql 控制台中查询吗?
那至少需要你的控制台环境是支持 utf-8 编码的
你在 gbk 环境中去看 utf-8 编码的内容,当然是乱码的
现在可不可以把数据库在mysql里能正常存中文?
我现在想直接mysql命令行里查询,也能显示中文,该怎么做?
要想不乱码,就需要使用与操作环境一直的语言编码
不要在数据库有内容的情况下修改 my.ini ,这样只会造成更大的混乱
------解决方案--------------------
如果不行的话建议重装一次,在装的时候注意选择编码的类型
相关文章
相关视频