欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

mysql 乱码的有关问题

程序员文章站 2022-06-17 09:42:38
...
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 乱码的有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频