在 MySQL 数据库中保存重音符号

2022-08-30 15:53:44


我试图在我的数据库中保存法语口音,但它们并没有像在数据库中那样保存。
例如,“é”保存为“é”。
我试图将我的文件设置为“Unicode(utf-8)”,DB中的字段是“utf8_general_ci”以及DB本身。
当我查看使用 Firebug 通过 AJAX 发布的数据时,我看到重音显示为“é”,因此它是正确的。

谢谢,让我知道你需要更多的信息!


答案 1

就个人而言,我通过在MySQL连接代码之后添加来解决相同的问题:

mysql_set_charset("utf8");

或对于 mysqli:

mysqli_set_charset($conn, "utf8");

或 mysqli OOP 等效项:

$conn->set_charset("utf8");

有时你必须通过添加以下代码来定义主php字符集

mb_internal_encoding('UTF-8');

在客户端 HTML 端,您必须添加以下标头数据:

<meta http-equiv="Content-type" content="text/html;charset=utf-8" />

为了使用JSON AJAX结果(例如,通过使用jQuery),您应该通过添加以下内容来定义标头:

header("Content-type: application/json;charset=utf8");
json_encode(
     some_data
);

这应该可以解决问题


答案 2

最好的办法是数据库连接不是 UTF-8 编码的 - 默认情况下通常是 ISO-8859-1。

尝试发送查询

SET NAMES utf8;

建立连接后。


推荐