MySQL排序规则类型是否需要匹配PHP页面字符集类型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL排序规则类型是否需要匹配PHP页面字符集类型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1856字,纯文字阅读大概需要3分钟。
内容图文
![MySQL排序规则类型是否需要匹配PHP页面字符集类型?](/upload/InfoBanner/zyjiaocheng/898/acfe6d65947f4efcb7320cd5237024c2.jpg)
我已经开始调试我的RSS提要,因为它有一些奇怪的字符(即缺少字符字形).我从两个优秀的初学者资源开始:
>绝对最低每个软件开发人员绝对必须知道Unicode和字符集:http://www.joelonsoftware.com/articles/Unicode.html
>字符集/字符编码问题:http://www.phpwact.org/php/i18n/charsets
我认为我们的RSS源存在问题的原因是因为用户将MS Word文档复制并粘贴到网站上的textarea中,而我们的PHP页面使用的是“iso-8859-1”字符集,这与特殊的“Windows-”不兼容1252“用于MS Word使用的项目符号和智能引号等编码.
所以我希望能解决这个问题,我需要做的就是在获取/提供用户输入的页面中开始使用“utf-8”.即在HEAD部分中设置以下内容:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
我提出这个问题的真正原因是因为我存储用户输入的数据库字段位于“latin1_swedish_ci”中,我想知道是否需要将它们转换为“utf8_general_ci”? MySQL真的不关心charset吗?它只看到一堆字节,如果我将Unicode放入一个整理为拉丁语的字段中它仍然会以Unicode的形式返回?更改字段会很烦人,因为该字段是FULLTEXT索引的一部分,其他字段也需要更改其排序,这意味着删除索引并重建它(当涉及大量TEXT时这不是一项小任务).
解决方法:
The real reason I’m raising this question though, is because my DB fields that store my user input are in “latin1_swedish_ci” and I want to know whether I NEED to convert them to “utf8_general_ci”?
不,latin1_swedish_ci和utf8_general_ci是排序规则 – 而不是字符集.排序规则不会影响字符的存储方式或输入/输出方式.它仅控制排序功能如何排序结果.整理 – 按预期工作 – 应与存储字符集匹配.因此,如果您的表存储在utf8中,则应使用utf8排序规则.
mysql的存储字符集并不直接绑定到php中的字符集.您可以使用utf8作为Mysql的存储字符集,同时在php中使用iso-8859-1.在这种情况下,您需要通过在连接上设置charset(设置名称XXX)来告诉Mysql.然后Mysql将根据需要进行转换.如果你没有在Mysql和php上使用相同的字符集,你最终会得到最低的dommon分母的字符集容量,所以即使字符串存储在utf8中,你也不会拥有完整的unicode字符范围可用.因此你应该在Mysql和php中使用utf8.
内容总结
以上是互联网集市为您收集整理的MySQL排序规则类型是否需要匹配PHP页面字符集类型?全部内容,希望文章能够帮你解决MySQL排序规则类型是否需要匹配PHP页面字符集类型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。