Php 安全字符编码字符串-Guns N';玫瑰&x2013;可爱的孩子O’;矿

Php 安全字符编码字符串-Guns N';玫瑰&x2013;可爱的孩子O’;矿,php,html,utf-8,Php,Html,Utf 8,在我的个人网站上-拉入我最近听过的6首歌曲,这些歌曲是通过我的last.fm个人档案追踪的。我将它们存储在数据库中,然后循环浏览并在主页上显示结果 不过我今天注意到,我亲爱的孩子,图钉枪和玫瑰并没有被正确编码。前两个撇号可以,但第三个撇号引起了问题。我的站点前端采用utf-8字符编码,与我的最后一个.fm配置文件页面相同,该页面也是utf-8编码的,因此我不明白为什么我的站点会出现此问题 歌曲标题在我的数据库中很好,只是在前端,它显示的很奇怪 非常感谢您的帮助。查看您网站的源代码,您似乎已将编码

在我的个人网站上-拉入我最近听过的6首歌曲,这些歌曲是通过我的last.fm个人档案追踪的。我将它们存储在数据库中,然后循环浏览并在主页上显示结果

不过我今天注意到,我亲爱的孩子,图钉枪和玫瑰并没有被正确编码。前两个撇号可以,但第三个撇号引起了问题。我的站点前端采用utf-8字符编码,与我的最后一个.fm配置文件页面相同,该页面也是utf-8编码的,因此我不明白为什么我的站点会出现此问题

歌曲标题在我的数据库中很好,只是在前端,它显示的很奇怪


非常感谢您的帮助。

查看您网站的源代码,您似乎已将编码的UTF-8字符串传递给一个HTML实体编码器,该编码器在某些情况下不理解UTF-8:

<a href="http://www.last.fm/music/Guns+N%27+Roses/_/Sweet+Child+O%E2%80%99+Mine" title="Guns N' Roses- Sweet Child O&acirc;�� Mine" target="_blank" rel="external nofollow">


注意
â
是U+00E2的HTML实体,UTF-8序列(E2 80 99)的第一个字符。

查看您网站的源代码,似乎您已将编码的UTF-8字符串通过一个HTML实体编码器传递,该编码器在某个点上不理解UTF-8:

<a href="http://www.last.fm/music/Guns+N%27+Roses/_/Sweet+Child+O%E2%80%99+Mine" title="Guns N' Roses- Sweet Child O&acirc;�� Mine" target="_blank" rel="external nofollow">


注意
â
是U+00E2的HTML实体,UTF-8序列(E2 80 99)的第一个字符。

嘿,Matthew,你可能想这样做

htmlentities($str, ENT_QUOTES, "UTF-8");

这是为你整理的吗?

嘿,马修,你可能想这样做

htmlentities($str, ENT_QUOTES, "UTF-8");

这是为您排序吗?

看起来您将编码的字节传递给了HTML实体编码器:HTML读取
â;��
看起来您将编码的字节传递给了HTML实体编码器:HTML读取
â;��
From php.net:与htmlspecialchars()类似,htmlentities()采用可选的第三个参数编码,该参数定义转换中使用的编码。如果省略,此参数的默认值在PHP 5.4.0之前的版本中为ISO-8859-1,在PHP 5.4.0之后的版本中为UTF-8。尽管此参数在技术上是可选的,但强烈建议您为代码指定正确的值。从php.net:与htmlspecialchars()一样,htmllenties()采用可选的第三个参数编码,该参数定义了转换中使用的编码。如果省略,此参数的默认值在PHP 5.4.0之前的版本中为ISO-8859-1,在PHP 5.4.0之后的版本中为UTF-8。尽管此参数在技术上是可选的,但强烈建议您为代码指定正确的值。