编码不是我最强的观点......
我正在建立一个涉及多种不同语言的网站。
数据库以UTF-8格式存储内容。
使用jQuery和AJAX从db向屏幕注入内容。问题是,响应未正确编码。 Français回归Fran ais
我不确定我做错了什么,jquery中的默认请求是uft8,数据存储在uft-8的db中,html页面设置为<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
我错过了一些明显的东西吗? 谢谢, 约翰
当我直接绕过jquery ajax请求内容时,响应被正确编码..就像浏览器没有设置标题时一样......
答案 0 :(得分:1)
正如我的评论中所提到的,你应该确保你的数据库连接字符集也是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));
请注意 charset 参数作为DSN的一部分。除非您遇到低于5.3.6的PHP版本,否则无需运行SET NAMES
查询。