【问题标题】:Accents not showing correctly in workbench but ok in php website口音在工作台中未正确显示,但在 php 网站中正常
【发布时间】:2012-05-14 07:45:42
【问题描述】:

我正在使用一个 utf8 mysql 数据库和一个带有 php 的 utf8 环境。
使用 php 插入一些带有重音符号的文本,然后通过 php 选择它们。重音符号已正确打印在屏幕上。
我的问题是它们在工作台中没有正确显示,当我手动插入一些值时,当使用 php.ini 选择这些值时,这些值没有正确打印在屏幕上。

感谢任何帮助。

【问题讨论】:

  • 您是否有机会发布您的代码?
  • mysql_query("插入到 itens (ite_titulo) 值 ('téstü') ");通过 php,这就是我将 php 环境设置为 utf8 的方式: ini_set('default_charset', 'UTF-8'); header('Content-Type: text/html; charset=UTF-8');
  • 你用的是哪个版本的php?
  • 您确定要插入的表设置为使用 UTF-8?我问是因为如果它期待 latin1 但被赋予 UTF-8,这正是我所期望的行为。

标签: php mysql encoding diacritics


【解决方案1】:

记得告诉数据库连接你从 PHP 端发送 UTF-8 字符串:

mysql_set_charset('utf8');

如果您将 UTF-8 字节作为 ISO-8859-1 字节插入数据库,并以相同的方式检索它们(我怀疑您目前正在这样做),您的应用程序会正常,尽管它们看起来是错误的数据库的观点。这样做会丢失非 ASCII 字符的排序规则,因此特别是区分大小写的比较可能会意外失败。

【讨论】:

  • 只有在每次连接后添加这段代码才能起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
相关资源
最近更新 更多