PHP和Mysql特殊字符

时间:2014-09-09 11:17:18

标签: php mysql character-encoding

我在浏览这个问题时没有找到答案所以我想问它没关系......

我的PHP代码从我的Mysql数据库中读取一个字符串并打印出来,这里是代码

$sql2=mysql_query("SELECT * FROM Corsi WHERE Nome='$Ln_1[Ln_1]'");
$Ln_1_a = mysql_fetch_array($sql2);
$Ln_1_descr = $Ln_1_a[5];

但是'è''''''等特殊字符打印为' '。 我的Mysql编码是utf8,在我的html标题中我有utf8编码,所以这有什么问题?

提前致谢

4 个答案:

答案 0 :(得分:2)

首先,在数据库选择之后的MySQL连接开始时,您应该放置此查询:

mysql_query('SET NAMES utf8');

然后确定,您的网页有UTF-8编码(我猜你使用的是HTML,所以看起来应该是这样的:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

)以及您的脚本文件必须以UTF8编码保存。

但是我必须提醒mysql_*函数已被弃用,由于您的查询安全,您应该使用mysqli_*或PDO代替prepared statements

答案 1 :(得分:1)

尝试(在mysql_connect之后)执行mysql_query('SET NAMES utf8')。并检查,如果字体支持这些字符。

答案 2 :(得分:0)

使用utf8_decode功能

像这样

$Ln_1_descr = utf8_decode($Ln_1_a[5]);

答案 3 :(得分:0)

使用htmlspecialchars($yourvariable, ENT_NOQUOTES, "UTF-8")

同时验证您的MySQL配置文件是否为:

[客户] 默认字符集= UTF-8

[MySQL的] 默认字符集= UTF-8

此外,utf8_encode()和utf8_decode()也适用于你。