编码不是我的强项...
我正在构建一个涉及多种不同语言的网站。
数据库以 UTF-8 格式存储内容。
内容通过 jQuery 和 AJAX 从数据库注入(inject)到屏幕上。问题是,响应编码不正确。 Français 回归为 Français
我不确定我做错了什么,jquery中的默认请求是uft8,数据存储在uft-8的数据库中,html页面设置为<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
我是否遗漏了一些明显的东西? 谢谢, 约翰
当我直接绕过jquery ajax请求内容时,响应被正确编码..就像浏览器没有设置 header 时一样......
最佳答案
正如我的评论中提到的,您应该确保您的数据库连接字符集也是 utf-8。这是我的 goto PDO 构造函数,它可以很好地设置...
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'username', 'password', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC));
注意字符集参数作为DSN的一部分。除非您使用低于 5.3.6 的 PHP 版本,否则无需运行 SET NAMES
查询。
关于php - 法语编码字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825626/