gpt4 book ai didi

php - MySql 编码错误

转载 作者:行者123 更新时间:2023-11-28 23:41:55 24 4
gpt4 key购买 nike

我有一个这样的mysql表结构

CREATE TABLE `table_contenu` (
`id_contenu` int(10) UNSIGNED NOT NULL,
`id_rubrique` int(10) UNSIGNED NOT NULL,
`id_membre` varchar(250) NOT NULL,
`id_contenu_type` int(10) UNSIGNED NOT NULL,
`titre_fr` varchar(128) NOT NULL,
`titre_en` varchar(128) NOT NULL,
`resume_fr` text NOT NULL,
`resume_en` text NOT NULL,
`texte_fr` text NOT NULL,
`texte_en` text NOT NULL,
`date_start` date NOT NULL,
`date_end` date NOT NULL,
`calendrier` varchar(5) NOT NULL DEFAULT 'false',
`une` varchar(5) NOT NULL DEFAULT 'false',
`ordre` smallint(5) UNSIGNED NOT NULL,
`flag` varchar(5) NOT NULL DEFAULT 'true',
`date_maj` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

在我的网站上,我有一个提交数据的表单

我页面上的字符集是<meta charset="utf-8">并且 'texte_fr' 具有搭配 utf8_general_ci(我尝试使用 utf8_unicode_ci 但它是一样的!)

为什么当我提交词“séances”时,这个词在数据库中看起来是“séances”?

感谢您的帮助...

最佳答案

重要的是您的整个行代码具有相同的字符集,以避免出现字符显示不正确的问题。

这里有一些必须设置为特定字符集的东西。

标题

  • 将 HTML 和 PHP header 中的字符集设置为 UTF-8
    • PHP: header('Content-Type: text/html; charset=utf-8');
      (PHP header 必须放在任何类型的输出(回显、空格、HTML)之前)

连接

  • 您还需要在连接本身 中指定字符集。
    • PDO(在对象本身指定):
      $handler = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET UTF8"));
    • MySQLi:(创建连接后直接放置)
      * 对于 OOP:$mysqli->set_charset("utf8");
      * 对于程序:mysqli_set_charset($mysqli, "utf8");
      (其中 $mysqli 是 MySQLi 连接)
    • MySQL (depricated, 你应该转换成PDO或MySQLi): (创建连接后直接放置)
      mysql_set_charset("utf8");

数据库

  • 您的数据库 及其所有表都必须设置为 UTF-8。请注意,字符集与排序规则相同。

    您可以通过为每个数据库和表(例如在 phpMyAdmin 中)运行下面的查询一次来做到这一点

    ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

文件编码

  • 同样重要的是 .php 文件本身是 UTF-8 编码的。如果您使用 Notepad++ 编写代码,可以在任务栏上的“格式”下拉菜单中完成。您应该使用字符集 UTF-8 w/o BOM

您还可以查看这篇 StackOverflow 帖子:UTF-8 all the way through .

关于php - MySql 编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com