【转】phpmyadmin,终于把你给整好了!

本文详细介绍了如何解决PHPMyAdmin中出现的中文乱码问题,并解释了MySQL字符集的工作原理。通过调整字符集设置,确保数据在数据库和网页间正确传输。

我相信大多数像我一样的新手,如果刚开始使用phpmyadmin,或者mysql,都被phpmyadmin的中文乱码问题折磨过,这不奇怪,谁叫人家是瑞典人开发的呢?

我 之前的情况是这样的:糊里糊涂的设置了字符集,使得通过php程序插入的数据,都能正确的反馈在网页上,而在phpmyadmin中则显示为乱码,但通过 phpmyadmin手工插入的数据则在phpmyadmin中显示没问题,但在网页上显示为乱码。当时我的字符集设置为

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+-------------------------------------------+
| Variable_name          | Value                                  |
+--------------------------+-------------------------------------------+
| character_set_client     | latin1                               |
| character_set_connection | latin1                                  |
| character_set_database | latin1                                  |
| character_set_filesystem | binary                                  |
| character_set_results | latin1                                  |
| character_set_server     | latin1                                  |
| character_set_system     | utf8                                      |

为了解决这个问题,我在网上搜了好久,结果是众说纷纭,把自己的头都搞大了也没搞出个所以然来。当时由于程序能够正常运行,而且一般也不通过phpmyadmin来手工处理数据,就没有处理。

但最近问题来了,由于有个注册页有个性别的radio,我在数据库里选择用enum数据类型,即enum('男','女'),结果由于之前的原因,怎么也插入不进去。被迫重操旧业,继续搜看。

又是一个艰苦的过程,不过这回找到了问题的关键所在:

Mysql 的字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。其默认的字符集设置为latin1,也就是 说无论在那个层次上,只要你没有经过改动,字符集均为latin1。与页面和数据库显示紧密相关的就是我做红色标记的三项:

| character_set_client     | latin1                               |
| character_set_connection | latin1                                  |
| character_set_results | latin1                                     |

大 家注意到我当时的字符集设置为latin1,我们可以理解为我的客户端,网页向数据库传送时将字符集为gb2312的中文按照latin1编码为了瑞典文 (乱码),即在phpmyadmin中显示为乱码,当时我的字符集连接校对为utf8-unicode-ci,数据库以及数据表的字符集均为:utf8- unicode-ci,这是个多语言字符集,可以处理存储瑞典文,影响不大,然后再用php程序输出数据是将该瑞典文按latin1字符集编码还原为中 文,这时在网页上显示没有问题就不难理解了,通过latin1编码的中文,要想再还原为中文,解铃还须系铃人,必须还要用latin1字符集编码,这就是 默认的字符集设置。

明白了原因,做起来就容易了,我们此时应该明白:

1.要想在phpmyadmin中显示中文,就必须将网页传送的数据用中文字符集(gb2312或者gbk)来编码;

2.要想在网页中显示中文,就必须使用和前者相同的编码方式来处理数据库将要传送给网页的数据;

3.至于数据库,数据表的字符集设置,没有特殊要求,只要能够存储中文就好,例如utf8、gb2312、gbk;

4.还有一个连接校对的设置,此时应设置为和第一点相同的字符集;

如果你的Mysql字符集是这样设置的,那么恭喜你,你已经可以让中文在你的数据库中正常工作了。

最后我把我的字符集设置提供如下,仅供参考:

+--------------------------+------------------------------------------+
| Variable_name            | Value                                    |
+--------------------------+------------------------------------------+
| character_set_client     | latin1                                   |
| character_set_connection | latin1                                   |
| character_set_database   | utf8                                     |
| character_set_filesystem | binary                                   |
| character_set_results    | latin1                                   |
| character_set_server     | latin1                                   |
| character_set_system     | utf8                                     |
| character_sets_dir       | D:\website\VerServ\Mysql\share\charsets\ |
+--------------------------+------------------------------------------+

可以看出数据库是字符集为utf8,数据表继承数据库的设置也为utf8

但其他还是默认设置,为了能够正常显示中文,我们作如下改动:

在每次执行查询之前都加上如下语句:

mysql_query("set names 'gbk'");

就可以确保

| character_set_client     | gbk                                   |
| character_set_connection | gbk                                     |
| character_set_results | gbk                                    |(注意这只是此次查询时,查看数据库仍为latin1)

然后我们将phpmyadmin的连接校对设为gbk-chinese-ci,赶快插条记录试试,大功告成!

转载于:https://www.cnblogs.com/token/p/3572793.html

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值