Php Mysql: 字符集

Php Mysql: Charset

我的数据库有

我所有的数据库都有:

我的主页保存为 utf8,有 utf8-meta-charset 和一个 php utf8-header。我的 Ajax-loaded 页面也是。但是,会显示 ä、ö、ü 等字符:“?”

如果我在主页的开头设置名称

set names utf8 COLLATE 'utf8_general_ci'

Ajax-loaded 内容正确,但我的主页 ö,ü... 显示“?” 主页内容来自mb_detect_encoding($str);还是utf8...

我应该看哪里?

注意:每个内容都包含在 include_once 所以index.php->loged.php->content.php

要让您的网站使用 UTF-8:

  1. 将字符集设置为 php 连接对象(不要与数据库设置混淆)$mysqliDb->set_charset('utf8');
  2. 使用 UTF-8 对 PHP 页面进行编码,这必须由您的代码编辑器完成。

我试图指出这篇短文中的所有要点 article

编辑:

对于 PDO,设置字符集的语法为:

$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=utf8";
$db = new PDO($dsn, $dbUser, $dbPassword);

您可以尝试执行 mysqldump,检查转储的内容以确保内容是 utf-8 编码的。如果不是,请将其转换为 utf-8 并导入转储。

如果这能解决您的问题,那么将数据保存到数据库中的脚本会以错误的编码保存数据。