首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql编码错误

MySql编码错误
EN

Stack Overflow用户
提问于 2015-12-11 15:50:24
回答 1查看 2.8K关注 0票数 2

我有这样的mysql表结构

代码语言:javascript
复制
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(C)’?

谢谢你的帮助..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-11 15:56:44

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

下面列出了一些必须设置为特定字符集的内容。

标头

  • 将HTML和PHP中的字符集设置为UTF-8
    • PHP:header('Content-Type: text/html; charset=utf-8'); (PHP头必须放在任何类型的输出(echo、空格、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 (降级,应转换为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;

File-encoding

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34227457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档