使用UTF-8在DB中存储HTML /特殊字符

时间:2012-08-02 22:56:48

标签: php mysql

我正在修改我的网站以使用UTF-8编码,这被证明有点痛苦。这是我到目前为止所做的:

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

2)mysql_set_charset("utf8");

3)将数据库,表和列的字符集设置为utf8

现在我在一个字段中有一些数据,其内容是(确切的形式):

<p>Tom & Jerry £5</p>

将此数据输出到页面后,所有内容在视觉上都显示正确。但是,在进行HTML验证检查时,它会在&符号上失败,因为它未更改为&amp;

现在我尝试使用htmlentities()解决此问题,但这会对所有内容进行编码,包括HTML P标记的尖括号。所以它看起来不正确。此外,英镑符号出现在它前面有一个奇怪的角色。

我的问题是,我是否正确地将数据存储在数据库表中?如果是这样,我需要做些什么来确保所有显示和验证都正确?

1 个答案:

答案 0 :(得分:3)

在网页中输出UTF-8文字时,请使用htmlspecialchars代替htmlentities