【问题标题】:ajax + php + mysql: (another) issue with charsetsajax + php + mysql:(另一个)字符集问题
【发布时间】:2013-03-20 03:15:46
【问题描述】:

标签: php jquery mysql ajax character-encoding


【解决方案1】:

$.ajax 使用encodeURIComponent,它始终使用 UTF-8。您的流程有什么问题不是到处都使用 UTF-8。

如果你现在不能改变这个事实,你可以mb_convert_encoding ajax 数据在服务器端从 UTF-8 转换为 Windows-1252。

注意:

  • 对于浏览器 ISO-8859-1 意味着 Windows-1252
  • 对于 MySQL latin1 表示 Windows-1252
  • 对于任何 PHP 函数 ISO-8859-1 表示 ISO-8859-1
  • 对于除 MySQL 之外的任何东西,Windows-1252 表示 Windows-1252

【讨论】:

  • 谢谢!!这解决了我的问题!我通过mv_convert_encoding所有参数,解决了问题!所有这些字符集的东西有点混乱......同时我会尝试将所有内容都更改为 UTF-8。
  • @Morillas 是的,但不建议这样做,您必须记住将mb_convert_encoding 放在代码中的某些地方,而不是在其他一些地方......它变得非常混乱且对每个人来说都无法维护。例如json_* 也仅适用于 UTF-8。在任何地方都使用 UTF-8 要容易得多,而且一切正常。
  • @Morillas 如果您使用 UTF-8,那么最常见的错误是忘记将文本编辑器设置为以 UTF-8 保存文件,而不是设置数据库 connection 编码(mysql_set_charset("utf8")) 不同于 storage 编码(SQL 配置和表/列/数据库中设置的字符集)。
猜你喜欢
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2011-03-10
  • 2018-11-29
  • 1970-01-01
相关资源
最近更新 更多