Php Mysql: 字符集
Php Mysql: Charset
我的数据库有
- 默认排序规则:utf8_unicode_ci
- 默认字符集:utf8
我所有的数据库都有:
- 整理:utf8_unicode_ci
我的主页保存为 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:
- 将字符集设置为 php 连接对象(不要与数据库设置混淆)
$mysqliDb->set_charset('utf8');
- 使用 UTF-8 对 PHP 页面进行编码,这必须由您的代码编辑器完成。
我试图指出这篇短文中的所有要点 article。
编辑:
对于 PDO,设置字符集的语法为:
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=utf8";
$db = new PDO($dsn, $dbUser, $dbPassword);
您可以尝试执行 mysqldump,检查转储的内容以确保内容是 utf-8 编码的。如果不是,请将其转换为 utf-8 并导入转储。
如果这能解决您的问题,那么将数据保存到数据库中的脚本会以错误的编码保存数据。
我的数据库有
- 默认排序规则:utf8_unicode_ci
- 默认字符集:utf8
我所有的数据库都有:
- 整理:utf8_unicode_ci
我的主页保存为 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:
- 将字符集设置为 php 连接对象(不要与数据库设置混淆)
$mysqliDb->set_charset('utf8');
- 使用 UTF-8 对 PHP 页面进行编码,这必须由您的代码编辑器完成。
我试图指出这篇短文中的所有要点 article。
编辑:
对于 PDO,设置字符集的语法为:
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=utf8";
$db = new PDO($dsn, $dbUser, $dbPassword);
您可以尝试执行 mysqldump,检查转储的内容以确保内容是 utf-8 编码的。如果不是,请将其转换为 utf-8 并导入转储。
如果这能解决您的问题,那么将数据保存到数据库中的脚本会以错误的编码保存数据。