MySQL(和PHP搭配之最佳组合)中文乱码的原因

MySQL(和PHP搭配之最佳组合)会出现中文乱码的原因不外乎下列几点:

MySQL(和PHP搭配之最佳组合) server本身设定问题,例如还停留在latin1

MySQL(和PHP搭配之最佳组合) table的语系设定问题(包含character与collation)

客户端程式(例如php)的连线语系设定问题

在之前的两篇文章中已介绍过如何设定MySQL(和PHP搭配之最佳组合) server/table的character/collation。

接下来只需要补充几点注意事:

MySQL(和PHP搭配之最佳组合)中文乱码必胜解决法

1、MySQL(和PHP搭配之最佳组合)启动时会读取一个预设的config档,一般名称为my.ini,而它会到下列两位置去寻找这个档案:

C:windowsmy.ini也就是作业系统的安装目录,也有可能是C:winntmy.ini

C::my.cnf也就是C disk的根目录

注意不同位置里的档案suffix不一样,这点在之前的文章中没有特别强调,因此那时我是用更复杂的方法直接重新将MySQL(和PHP搭配之最佳组合)注册到service里面,并在那里指定my.ini的位置。

2、my.ini里的内容为:

[MySQL(和PHP搭配之最佳组合)d]

default-character-set=utf8

[client]

default-character-set=utf8

init_connect='SET NAMES utf8'

其中MySQL(和PHP搭配之最佳组合)d是指定server启动时要用的语系,但如果这里设定为utf8可能会让许多英文软体不开心,例如osCommerce/mediaWiki,所以这里建议设成latin1。

下面的client则是设定当client连线时要使用什么语系,但可惜的是这个设定不是每个client都会鸟它,基本上只有MySQL(和PHP搭配之最佳组合)自已家的程式,例如MySQL(和PHP搭配之最佳组合).exe, MySQL(和PHP搭配之最佳组合)d.exe, MySQL(和PHP搭配之最佳组合)admin.exe或是MySQL(和PHP搭配之最佳组合) Control Center这种程式会去读取这个设定档然后改用utf8连线。

note:感谢b6s桑热情相助提供第二行指令,据说比一支支php程式去设定connection setting更快,这样应该也可以顺便解决phpmyadmin无法正确显示unicode中文的问题(不过amfphp到是不吃这套,一定要乖乖的自已设定语系才行)

但大部份工程师应该都是自已写php/jsp(SUN企业级应用的首选)程式去连线,此时自然不会读取这个设定而继续使用预设的语系- latin1。

这也正是八成来信朋友阵亡的地方。

通常我会用一个独立的档案来处理MySQL(和PHP搭配之最佳组合) connection的设定,例如:

以下为引用的内容:

PLAIN TEXT

//database connection details.

$host = "localhost";

$link = MySQL(和PHP搭配之最佳组合)_connect($host, "xxx", "xxx");

MySQL(和PHP搭配之最佳组合)_query("SET NAMES 'utf8'");

MySQL(和PHP搭配之最佳组合)_select_db("your_table_name_here", $link);

?>

请注意在MySQL(和PHP搭配之最佳组合)_connect后第五行的地方有加上一个"set names 'utf8' "的指令,告诉MySQL(和PHP搭配之最佳组合)这个connection之后的连线内容都要使用utf8,经过这样设定后,通常就可以解决大部份问题。

从这里也可以推想得知,如果你有用某种custom connection pooling机制,就要记得在每次建立新的connection后立即设定为utf8。

这组设定经过几天的反覆测试(使用中文繁、简、日文、韩文)后已经证实完全不会有乱码或是某些字变成"口"。

例子:试者输入这几个字「不道可否啰」如果它们能正确进入MySQL(和PHP搭配之最佳组合)再被读出来,那就是中文没问题了,如果读出来后变成『口』字那就是革命还未成功同志仍需努力...orz

当然我也顺便验证了flex2 - amfphp - php - MySQL(和PHP搭配之最佳组合)来回传resultset也不再会有中文乱码问题,可以安心使用啰。

解决mysql的乱码问题_完美解决mysql中文乱码的问题相关推荐

  1. mysql删除端口配置文件_完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存...

    今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教程安装了phpstudy集成环境. 很快安装好了,嗯.对新手 ...

  2. java url 中文乱码问题_处理URL传递中文乱码问题

    作者:肖文伟 在网上搜了很多资料都没有搞定,一般都有以下几种说法: 方法1:在后台中先获得字符串的iso-8859-1编码形式数组,再使用此数组实例一个UTF-8编码形式String类型字符串. 页面 ...

  3. zabbix mysql设置中文乱码_解决zabbix监控因php问题导致图形界面中文乱码方法

    解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题 现象: php编译参数: 说明: 如果PHP编译时启用–enable-gd-jis-co ...

  4. java网络爬虫,乱码问题终于完美解决

    java网络爬虫,乱码问题终于完美解决 参考文章: (1)java网络爬虫,乱码问题终于完美解决 (2)https://www.cnblogs.com/-LilyBlog-/p/7593841.htm ...

  5. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 参考文章: (1)解决java web中safari浏览器下载后文件中文乱码问题 (2)https://www.cnblogs.com/ ...

  6. 报错解决:form表单提交存入数据库出现中文乱码

    遇到问题:在JavaWeb学习阶段,通过表单提交对数据库数据进行修改,发现原本为中文字段的数据,表单提交之后都变成了乱码. 解决措施:针对form表单的请求方式修改编码格式 get和post请求的区别 ...

  7. python读取压缩文件时乱码,zipfile解压缩包,出现中文乱码问题问题

    python读取压缩文件时乱码,zipfile解压缩包,出现中文乱码问题问题 问题描述--python 使用zipfile模块 读取并且解压缩包,出现中文乱码问题 问题原因 python 使用这个模块 ...

  8. phpstudy mysql端口_完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存...

    今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教程安装了phpstudy集成环境. 很快安装好了,嗯.对新手 ...

  9. mysql数据库localhost已断开_完美解决MySQL通过localhost无法连接数据库的问题

    问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常.MySQL的权限设置正确,且通过mysql命令行客户端 ...

最新文章

  1. Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)
  2. Android java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
  3. python 真多线程_Python之路200个小例子,在线网页版来了,从此学习更方便!
  4. error和exception
  5. Android GridView LruCache
  6. Python用户界面编程PyQt5的四种的布局方式
  7. 关于Gossip协议的几个问题
  8. oracle varchar2() 占几个字母,Oracle number date varchar2字段类型占用空间大小
  9. 『重构--改善既有代码的设计』读书笔记----Replace Temp with Query
  10. (继承及其访问限定符)(派生类及其默认成员函数)(赋值兼容规则)
  11. webots自学笔记(五)使用物理插件ODE建立铰链
  12. 四个开放源代码审查工具【图文】
  13. redis 命令大全
  14. html语言基本标记实训,HTML静态网页设计实训.ppt
  15. 《陶哲轩实分析》——给读者的一点建议
  16. 破解百词斩单词数据之旅
  17. google搜索语法与技巧
  18. 谈一谈手游的运营与推广的那些事儿!
  19. python开发app教程_知到APP_数据库应用与开发_答案教程
  20. android sdk如何瘦身,给Android应用开发者的十条瘦身建议

热门文章

  1. 第三次学JAVA再学不好就吃翔(part76)--Collection类
  2. matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化
  3. Docker 实战教程之从入门到提高(二)
  4. 如何高效搜索汪子熙公众号发表的文章
  5. SAP Spartacus 里的 icon 设计
  6. Angular routerLink指令的href属性生成逻辑
  7. SAP UI的加载动画效果和幽灵设计(Ghost Design)
  8. SAP Spartacus ProductService.get的几个调用场景
  9. SAP Spartacus TypeScript源代码中的三个点用法
  10. SAP C4C url mashup跳转原理 - C4C UI到Mashup的参数传递是如何进行的