首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MySQL中的Unicode比较

PHP/MySQL中的Unicode比较
EN

Stack Overflow用户
提问于 2011-02-14 17:38:11
回答 2查看 790关注 0票数 1

当我进行数据库查询来更新列时,Acc的名称似乎与Acc的名称不同。然而AccîdentAccÎdent指向同一个地方..。

在插入时,在MySQL中访问=访问访问。另外,Acc=AccçŽDent.

你知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-14 17:43:52

默认情况下,MySQL假定客户端使用latin1字符集。如果在PHP脚本中使用UTF-8,那么这个假设是错误的。您需要通过在数据库连接打开后发出以下MySQL语句来指定您正在使用UTF-8:

代码语言:javascript
复制
SET NAMES utf8

则由以下SQL语句插入的数据将使用正确的字符集。这意味着您需要重新插入数据或遵循MySQL conversion procedure (请参阅最后几段)。

建议您的表也配置为以UTF-8存储数据,以避免不必要的读/写字符集转换。不过,这不是必需的。

有关更多信息,请访问MySQL documentation。具体地说,Connection Character Sets and Collations

票数 2
EN

Stack Overflow用户

发布于 2011-02-14 17:54:31

UTF 8首先,您似乎要将-8数据存储在不同编码的表中。MySQL将尝试并处理,但副作用如您所见-数据库中的数据将看起来“奇怪”。在创建表时,您需要指定字符编码-最好是UTF-8。对于现有的表,您将需要转换数据。

  • 第二,表除了编码之外还有一个“排序规则”。编码确定字符映射到字节的方式,排序规则确定排序和比较。有一些特定于语言的排序规则,但utf8_general_ci应该是您要查找的排序规则(ci代表“大小写不敏感”)-这样您的两个字符串就会匹配。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4990641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档