我在显示外来字符时遇到问题(带有重音符号的字符,例如:é à ù ç 等等)
数据库中的行是这样的:
Name | Datatype | Charset
title | varchar(255) | utf8_general_ci
我是这样存储的:
function inputFilter($var)
{
$var = trim(htmlentities(strip_tags($var)));
if (get_magic_quotes_gpc())
$var = stripslashes($var);
$var = mysql_real_escape_string($var);
return $var;
}
$title = inputFilter($_POST['title']);
然后我这样打印:
print $getfromdb['title'];
打印出来的是这样的:
Português //Should be: Português
我尝试添加: htmlspecialchars、utf8_decode/encode 和 htmlentities 打印出来,尽管没有任何帮助!
我已将此添加到标题中:
<meta charset="utf-8">
我做错了什么?
最佳答案
要遵循的步骤:
使用 UTF8 的元标记。
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
将您的 PHP 设置为使用 UTF8。
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
对于 mysql,您想将表转换为 UTF8。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
你也可以运行:
SET NAMES UTF8
作为建立连接后的第一个查询,会将您的数据库连接转换为 UTF8。
关于php/mysql - 外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546792/