我一直在努力解决 MySQL 中的编码问题。我正在构建一个数据库,其中不仅包含拉丁文,还包含西里尔文和阿拉伯文文本。所以这里是一个关于我如何创建数据库的例子:
CREATE DATABASE db1
DEFAULT CHARACTER SET utf8
COLLATE utf8_unicode_ci;
然后是一张表:
CREATE TABLE TempTb1
(
ID INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
arabic VARCHAR(100) NOT NULL
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_unicode_ci;
当我输入一些数据并选择它时,我只会得到一些奇怪的字符。所以我写了一个小的 PHP 脚本来测试它,但它也不起作用:
<?php
header('Content-type: text/plain; charset=utf-8');
$a = mysql_connect('localhost','root','') or die('Problem connecting to database!');
$b = mysql_select_db('db1') or die('Problem selecting database');
mysql_set_charset('utf8');
mysql_query("set names 'utf8'");
mysql_query('set character set utf8');
$query = mysql_query("SELECT * FROM Tb1;");
while($row = mysql_fetch_assoc($query))
{
$id = $row['ID'];
$name = $row['name'];
$arabic = $row['arabic'];
echo $id.' '.$name.' '.$arabic.PHP_EOL;
}
?>
我已经用utf8_unicode_ci
和进行了测试utf8_general_ci
。有什么问题?顺便说一句,我有 EasyPHP 5.2.10。