将数据从Mysql数据库中导出来,遇到 Mysql导出的数据中繁体显示为乱码、问号 的问题。根据经验试着调整数据库编码,要么还是乱码,要么没有变化。经过苦苦研究,终于解决了,方法比较简单,同时,也摸索了一套解决mysql获取数据出现乱码思路的方案。

一、分析判断PHP+Mysql出现乱码的原因

基本概括为以下几种情况:

1、Mysql数据库默认的编码是utf8,如果PHP页面的编码与其不一致,可能会造成Mysql数据乱码问题;

2、Mysql在创建表或添加字段时会让你对编码进行选择, 如果PHP页面的编码与其不一致,同样,可能会造成Mysql数据乱码问题;

3、用户提交页面的编码与显示数据的页面编码不一致,那么肯定会造成页面出现乱码。 如:用户提交资料的页面是big5或utf8编码,显示数据的页面却是gb2312;

4、获取的数据中含有繁体中文,而出现乱码,同样可用前面的方法进行原因分析;

5、PHP页面字符集不正确;

6、PHP在连接Mysql数据库时SQL语句指定的编码不对;

7、Mysql版本不对,这点还未深入了解。

二、对症下药、一一解决

对于分析判断Mysql数据出现乱码的原因,分别进行相应的处理,下面整理了一个解决 Mysql数据出现乱码 问题的思路:

1、检查程序页面编码是否与数据库编码一致,两者必须统一,Mysql编码操作或代码设置后面会详细叙述;

2、检查数据库中表或字段编码格式是否与所需的编码一致,同样编码设置操作见后面;比如:页面编码为utf-8,虽然数据库编码为utf8,但如果此数据字段设为gb2312,同样会出现乱码问题。

3、检查连接Mysql数据库的语句指定的编码是否正确,因为可通过mysql_query("SET NAMES UTF8");对数据编码进行设置,需正确设置;

4、对于获取的数据中繁体字显示为乱码情况,当在前面1、2、3条设置都不起作用的时候,可考虑以下解决方案:

如:你的网页编码为gb2312,而在提交数据时,可能存在繁体字的情况,那么显示出来肯定会出现乱码的问题。

解决方法:可将网站编码设置为utf-8,及数据库编码设置为utf8,utf-8编码可兼容世界上所有字符。如果已经存在旧的数据,不能简单设置为utf-8,那么可将页面编码设置为GBK,因为GBK比gb2312可以显示更多的字符,特别是要显示简体码的繁体字,只能用GBK。我今天遇到的情况就是通过这种方法,将连接Mysql数据库的语句编码设为GBK,问题成功解决,因为之前的数据是通过gb2312页面保存的,所以其中的繁体字导出会显示为问号。

说到这里就顺便把获取的数据中繁体字乱码问题的其它情况解决方法一块讲了。

5、如果你的繁体字是以big5编码保存的,那么在utf-8的页面显示,肯定会出问题,检查数据编码,将之统一为utf-8即可。

6、另一种解决方法:将表或字段编码设置为latin1_swedish_ci,我的数据库编码就是这种格式,之后我转过utf-8,没有多大变化,网上有人成功解决了繁体乱码问题,不妨一试。

7、其实,还有一种比较笨的办法,用phpmyadmin或其它工具,将数据全部导出到txt文本或sql文件,改变编码,然后导入解决编码问题。

好了,以上就是总结的解决问题的思路,也可以说是方法,如果还是没有解决,那么,难道还有更神秘的问题??关键还是编码问题,勿想其它的地方去。

三、cmd命令、代码设置编码语言

上面讲了思路,部分童鞋可能有些不解,或不知如何去设置。下面分别讲述代码设置、phpmyadmin工具设置数据库编码。

1、cmd命令执行更改编码

通过cmd命令行连上mysql数据库后,设置编码:set names ‘latin1′;表同理,连上表,然后设置字符集;

2、sql语句代码执行更改编码

在phpmyadmin中执行如下命令: ALTER DATABASE ’members’ DEFAULT CHARACTER SET utf8 COLLATE  utf8_general_ci  (这是将members数据库编码设为utf8)

如下命令:ALTER TABLE ‘members’ DEFAULT CHARACTER SET utf8 COLLATE  utf8_general_ci  (这是将members表编码设为utf8)

如下命令:ALTER TABLE ’members’ CHANGE ’user’ ’user’ VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL   (这是将members表中user字段编码设为utf8)

3、PHP页面连接更新语句设置编码

mysql_connect(‘localhost’,'user’,’123456′);

mysql_select_db(‘my_db’);

mysql_query("set names utf8;");//select之后,sql语句执行之前设置编码语言

mysql查出繁体文字_Mysql获取数据出现繁体显示为乱码的问题相关推荐

  1. Jmeter察看结果树响应数据的中文显示为乱码的解决办法

    问题描述:Jmeter运行结束,察看结果树响应数据的中文显示为乱码 解决办法: 1.找到Jmeter安装目录 bin\jmeter.properties文件,打开文件. 2.查找sampleresul ...

  2. mysql groupby 取值_mysql获取groupby总记录行数的方法

    本文实例讲述了mysql获取group by总记录行数的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组 ...

  3. scrapy读取mysql数据库_python3实战scrapy获取数据保存至MySQL数据库

    python3使用scrapy获取数据然后保存至MySQL数据库,我上一篇写了如何爬取数据保存为csv文件,这一篇将会写如何将数据保存至数据库. 思路大都一样,我列一个思路: 1:获取腾讯招聘网. 2 ...

  4. mysql 中文字符查询不出数据_jsp页面显示不出mysql中查询出的中文字符串,插入中文也不好使...

    用Eclipse编写的jsp页面,连接的是mysql数据库.英文和数字都能正常显示,中文就显示不了. 用户注册... 用Eclipse编写的jsp页面,连接的是mysql数据库.英文和数字都能正常显示 ...

  5. mysql分组最新值_Mysql获取分组最新数据

    源数据如下: 需要的效果是根据target_id分组取得最新的数据也就是: 目前想到两种方案: 方案一: 通过同表子查询或联查找到最大的数据ID 还有种写法: select * from (selec ...

  6. mysql季度第一天_mysql 获取季度的第一天 本月的第一天,本周的第一天sql语句(转)...

    感谢:http://www.111cn.net/database/110/d45124323da8d2d87b80f78319987eda.htm 查看同主题的另一篇博客:http://blog.cs ...

  7. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  8. mysql 拼音首字母_MySQL 获取某个字段的汉语拼音首字母 - 文章

    在做一个商城的时候,需要用户能有切换城市的功能,城市列表按照汉语拼音首字母排序,城市的数据是从国家统计局扒下来的,只有城市的编码和城市的名称,通过下面的 MySQL 函数,获取某个汉语的首字母. CR ...

  9. mysql创建销售表_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  10. mysql 系统时间查看_mysql 获取系统时间

    **####mysql数据库中获取系统时间** #获取当前系统时间 2020-01-08 15:13:19 select SYSDATE() from BIZ_BILL_DETAIL t; #获取当前 ...

最新文章

  1. linux 正则 设置密码复杂度,Ubuntu修改密码及密码复杂度策略设置方法
  2. 保护眼睛设置.txt
  3. mysql的query cache_MySQL 缓存 Query Cache
  4. python判断值是否为空(亲测)
  5. SPOJ4487(Splay树)
  6. mosquitto源码分析(二)
  7. javascript window alert
  8. onCreate()方法中的参数Bundle savedInstanceState 的意义用法
  9. 【Docker】在CentOS上安装
  10. Redis 的操作为什么是的原子性的详解
  11. 利用lasso回归建立预测模型并绘制列线图 二分类结局资料的lasso回归与列线图绘制
  12. 计算机网络工程师 一共几级,2020年计算机软考网络工程师中级多少分过
  13. 进化算法——组合优化
  14. 交通运输学计算机吗,交通运输专业所属学科门类是什么
  15. 将Excel数据导入到Notes应用
  16. 【STM32学习笔记】(9)——串口通讯(USART)详解
  17. python实现自动点击器_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)...
  18. 什么是算法?算法的5个特性
  19. 几何学观止(代数几何部分)
  20. 2022-2028全球及中国先进LTE测试设备行业研究及十四五规划分析报告

热门文章

  1. windows配置本地的虚拟主机
  2. 【渝粤题库】陕西师范大学201601《中国古代文学(三)》作业 (高起本)
  3. itunes计算机丢失,itunes怎么找不到app store了 最新版itunes app store在哪
  4. 离散数学_集合论部分_总结
  5. 3月第1周易盾业务风控关注 | 治理升级,让“标题党”、流量造假等网络乱象走开
  6. Hadoop的归档---har
  7. 元宵大师的Python股票量化分析工具QTYX-版本更新说明
  8. 请原谅我一生读题不仔细~仅以此纪念多校第十场1004
  9. Java打印年月日历
  10. Android Studio个人使用记录