纠正utf-8

时间:2012-01-21 01:50:10

标签: php utf-8

在我的网站上,很多用户都有外国名字,他们最近购买的聊天脚本很有趣,我想知道是否有任何PHP功能或任何可以解决它的东西。

请注意它们是如何搞笑的,它们是如何存储在数据库中的。

AliciaCarreño Geneviève

例如。

那么如何使用php来使这些看起来正确呢?

由于

编辑:当使用MYSQL时,它们看起来是正确的,但是当粘贴到html本身或回显时没有

编辑2:

我在phpmyadmin中运行了这个:“mysqldump -h localhost -u root -p --opt --quote-names \     --skip-set-charset --default-character-set = latin1 general>一般dump.sql “

错误是:“#1064 - 您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'mysqldump -h localhost -u root -p --opt附近使用正确的语法 - 在第1行“--quot-names \ --skip-set-charset”

编辑3:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?php       
$connection = mysql_connect('localhost','root','');
$select = mysql_select_db('general',$connection);
$result = mysql_query('SELECT name FROM exchange WHERE `id`= 192');
$results = mysql_fetch_assoc($result);
echo $results['name'];


?>

3 个答案:

答案 0 :(得分:1)

至少有六个地方编码/字符集可能是错误的,而且很难说哪一个是错误的。通常有几个。所以我建议先阅读this article about Unicode。它不是最短的,但它将是你编程生涯中最有价值的20分钟之一。在那之后,并仔细思考,你应该能够确定问题的来源和解决方案。

答案 1 :(得分:0)

他们很可能在您的数据库中存储不正确。使用Adminer,PHPMyAdmin或查询字符串将字段,表或数据库(我推荐后者)更改为utf8_general_ci。您可能使用默认的latin - 某种编码,它不支持UTF8字符。


您尝试在OP中的PHPMyAdmin中运行的命令必须从控制台运行;它不是SQL查询,因此语法错误。尝试使用PHPMA的内置导出和导入选项卡导出和导入数据。

答案 2 :(得分:0)

您需要将数据库连接设置为UTF-8,告诉数据库将发送给它的数据是UTF-8,从它返回的数据应该是UTF -8:

$connection = mysql_connect('localhost', 'root', '');
mysql_set_charset('utf8', $connection);

请参阅http://php.net/manual/en/function.mysql-set-charset.php