Home  >  Article  >  Database  >  MySQL编码问题的实际操作经验

MySQL编码问题的实际操作经验

WBOY
WBOYOriginal
2016-06-07 16:13:541031browse

我们今天要向大家讨论的是MySQL编码问题的实际操作经验,我是一个MySQL数据库的热捧者,对MySQL数据库相关的实际应用很是感兴趣,以下的文章就是主要介绍MySQL编码问题的经验大总结。 以下所描述无理论依据,纯属经验谈。 MySQL(和PHP搭配之最佳组合)使用4.1

我们今天要向大家讨论的是MySQL编码问题的实际操作经验,我是一个MySQL数据库的热捧者,对MySQL数据库相关的实际应用很是感兴趣,以下的文章就是主要介绍MySQL编码问题的经验大总结。    

以下所描述无理论依据,纯属经验谈。

MySQL(和PHP搭配之最佳组合)使用4.1以上版本,管他是什么字符集,一律使用默认。不用去设置MySQL(和PHP搭配之最佳组合)。

然后举个使用GB2312和UTF-8的例子。

好,你只要保证你的写着INSERT SQL语句的PHP文件MySQL编码为GB2312,恭喜你,你使用写着SELECT SQL语句的GB2312编码的PHP文件读取出来的数据也是GB2312的。

同理,只要你插入数据库的PHP文件是UTF-8编码,那么你录入的就是UTF-8的,读取出来同样使用编码为UTF-8的读取。

如果我录入为GB2312,显示要使用UTF-8怎么办?

如果你的所有PHP文件为UTF-8编码,那么你在INSERT的时候,就必须使用iconv进行编码转换,将str转为GB2312入库,读取也一样,使用iconv转为UTF-8显示。

你的前端页面使用什么编码,那么你那些字符串已经被该种编码编过了,所以,尽管入库,他的机器码肯定就是那样的,不管存放在哪里,不管MySQL(和PHP搭配之最佳组合)指定为何种编码,他在录入数据的时候,并不会对你的数据进行转换。只要保证你的前端录入使用UTF-8,那么你读取的也是UTF-8。

为什么使用PHPMYADMIN导入总是有问题呢?

我没有研究过PHPMYADMIN的工作原理,但是他的PHP文件都是UTF-8编码的,也就是这样导入数据都是UTF-8的,你采用GB2312的PHP文件来读取,当然一堆乱。

解决办法我猜有三种:

读取的时候,使用SET NAME将其MySQL编码转换,不知道可行不,

读取后使用iconv将其转为GB2312,

不用PHPMYADMIN导入,自己写个GB2312的PHP脚本导入即可。

总之一句话,你录入的时候采用什么MySQL编码,那么你读取的时候他就是什么编码。你想把这种编码显示成另外一种编码,那么你需要使用iconv或者mbstring将其进行编码转换。

以上仅为个人实际经验,没时间研究理论。欢迎大家探讨或者有错误请指正。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn