Ebp*_*bpo 25 php mysql diacritics character-encoding
我正在尝试在我的数据库中保存法语口音,但它们不会像在DB中那样保存.
例如,"é"保存为"Ã".
我试图将我的文件设置为"Unicode(utf-8)",DB中的字段是"utf8_general_ci"以及DB本身.
当我查看通过AJAX与Firebug发布的数据时,我看到重音通过了"é",所以这是正确的.
谢谢,让我知道您需要更多信息!
小智 52
我个人通过添加MySQL连接代码后解决了同样的问题:
mysql_set_charset("utf8");
Run Code Online (Sandbox Code Playgroud)
或者对于mysqli:
mysqli_set_charset($conn, "utf8");
Run Code Online (Sandbox Code Playgroud)
或mysqli OOP等价物:
$conn->set_charset("utf8");
Run Code Online (Sandbox Code Playgroud)
有时您必须通过添加以下代码来定义主要的php charset:
mb_internal_encoding('UTF-8');
Run Code Online (Sandbox Code Playgroud)
在客户端HTML端,您必须添加以下标头数据:
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
为了使用JSON AJAX结果(例如使用jQuery),您应该通过添加以下内容来定义标头:
header("Content-type: application/json;charset=utf8");
json_encode(
some_data
);
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题
最好的办法是您的数据库连接不是UTF-8编码 - 默认情况下通常是ISO-8859-1.
尝试发送查询
SET NAMES utf8;
Run Code Online (Sandbox Code Playgroud)
在建立连接后.