首頁 > 後端開發 > php教程 > mysql 乱码的有关问题

mysql 乱码的有关问题

WBOY
發布: 2016-06-13 10:35:55
原創
822 人瀏覽過

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 ,这样只会造成更大的混乱

------解决方案--------------------
如果不行的话建议重装一次,在装的时候注意选择编码的类型

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板