关于MySQL编码问题的经验总结

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

MySQL使用4.1以上版本,管他是什么字符集,一律使用默认。不用去设置MySQL。

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

好,你只要保证你的写着INSERT SQL语句的PHP文件编码为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指定为何种编码,他在录入数据的时候,并不会对你的 数据进行转换。只要保证你的前端录入使用UTF-8,那么你读取的也是UTF-8。

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

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

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

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

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

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

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

时间: 2024-10-29 20:00:41

关于MySQL编码问题的经验总结的相关文章

utf-8-跪求各位大神解答!!ubuntu下mysql编码改为utf8之后中文还是乱码

问题描述 跪求各位大神解答!!ubuntu下mysql编码改为utf8之后中文还是乱码 大神们请莫先喷我为何要问这种幼稚问题TAT 情况如下: ubuntu14.04下安装mysql5.5(最简单的安装方法:apt-get install...) 考虑到mysql默认编码为latin,会出现中文乱码,所以按照网上的方法修改了 my.cnf 如下: 之后重启mysql,查看了编码 本以为一切搞定,事与愿违,我试了试插入中文的字段,结果乱码 在workbench中也是这样 apply之前: appl

ext+servlet+mysql编码问题!!彻底崩了

问题描述 ext+servlet+mysql编码问题!!彻底崩了 ext+servlet+mysql 的一个管理系统 现在情况是 1. 用户登录到jsp 在文本框输入的参数, a = Ext.getCmp("XXX").getValue()获取不到 a永远为空"" (getCmp("XXX")成功,获取到了该组件,只是getValue为空) 2. 前台直接设置var a = "哈哈" 后台用b =getParameter(&q

数据库-mac下新版mysql编码方式修改

问题描述 mac下新版mysql编码方式修改 看了网上很多的教程,说在[client]标签和[mysqld]标签后加入内容(如下图),但是我加上后数据库启动是可以,就是不能插入语句了. 想问大神有没有完整的教程.!!! 解决方案 解决方案二: 修改mysql中的编码方式Mysql编码方式修改osx下修改mysql编码方式

mysql编码怎么设置步骤?

  mysql的默认编码是拉丁,每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号,安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码: 由上图可见database和server的字符集使用了latin1编码方式,不支持中文,即存储中文时会出现乱码.以下是命令行修改为utf-8编码的过程,以支持中文. (1)关闭mysql服务 [plain] view plaincopy service mysql stop (2)修改 /et

查询mysql编码以及解决mysql乱码问题

mysql出现的乱码问题是非常头疼的,有时可能出现在控制台,有时可能是服务方面的. MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置. (mysql安装时,特别是使用集成环境:比如appserver wampserver等如果不设置密码,打开控制台直接按enter键进入.) 第一:如何查询mysql的编码: 使用命令语句: mysql> SHOW VARIABLES LIKE 'character%';

fedora 中设置mysql编码

我的操作系统是fedora 20,安装MySQL 时安装的是MariaDB 最初查看数据库编码时,结果如下: MariaDB [passwd3]> show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name            | Value  | +--------------------------+--------+ | character_set_clien

mysql 编码 汉字识别-mysql中编码的问题,汉字识别问题。

问题描述 mysql中编码的问题,汉字识别问题. 为什么我用heidimysql图形化窗口写代码时候,输入汉字可以识别,但是用控制台命令行写的时候,却报错.我知道这是编码问题.我也知道解决方案.但是谁能告诉我为什么图形化窗口能识别,但是控制台不能识别. 另外,为什么我执行 set names gbk 和gb2312 指令都解决了这个问题,但是utf8还是不能识别,这几个编码在汉字识别上有什么区别. 学生新手求大神指点,在线等. 解决方案 因为控制台里的命令不支持汉字,建议你用navicat fo

mysql 编码的问题

(1)  当使用mysql数据库时,要确定五个编码.(1)首先我们要设置数据库的编码:(2)然后确定程序中的请求和响应的编码和数据库一致:(3)连接数据库的编码和数据库一致,jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8(注意这句话一定不要写错了)(4)页面编码和数据库一致.(5)程序文件编码和数据库一致. (2) 当以上五中都相同但还是出现插入乱码或查询乱码.你就应该考虑到mysql服务器的编码.

Wamp配置mysql编码

      因为之前做.net的时候,玩了玩儿PHP,所以用的wamp server 一直在,后来做java项目,也就一直用着上面的mysql.       但是中间出现过好几次乱码,额,今天又改了改wamp的mysql配置:       1,client:               这里 设置的是Wamp客户端的编码.      2,mysql:                这是配置在客户端输入时的编码           3,mysqld:                       这