首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML页面上的奇怪字符

HTML页面上的奇怪字符
EN

Stack Overflow用户
提问于 2010-06-24 23:05:26
回答 2查看 237关注 0票数 0

我正在使用Last.fm应用程序接口来获取艺术家的一些信息,.I保存在数据库中的信息,然后显示在我的网页上。但是像“(双引号)这样的字符显示为- likeœ。

艺术家信息http://www.last.fm/music/David+Penn示例

我的第一句台词是“西班牙马德里的制作人、编曲、dj和音乐家,他有自己的唱片公司--œZen唱片公司,”。

我的数据库是UTF-8,但我不知道为什么这个错误还会出现。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-25 00:05:14

您应该一直使用UTF-8。检查一下:

与数据库的连接是UTF-8 (使用mysql_set_charset);

  • the将输出的页面标记为UTF-8 (<meta http-equiv="Content-Type" content="text/html;charset=utf-8">);

  • when从数据库中输出字符串,使用htmlspecialchars()而不是htmlentities().

对其进行编码

ASCII对所有非htmlentities字符进行编码,默认情况下假定您向其传递的是ISO8859-1中的字节。因此,如果您传递以UTF-8 (字节0xE2、0x80、0x9C)编码的,您将得到&acirc;&#128;&#156;,而不是预期的&ldquo;&#8220;。这可以通过将utf-8作为可选的$charset参数传入来解决。

然而,通常只使用htmlspecialchars()会更容易,因为这会留下非ASCII码字符作为原始字节,而不是HTML实体引用。这会导致较小的页面输出,所以只要您确定所生成的HTML将保留其字符集信息(您通常可以依赖这些信息,除非在诸如在邮件中发送HTML片断之类的上下文中),则更可取。

htmlspecialchars()也有一个可选的$charset参数,但将其设置为utf-8并不重要,因为这不会导致默认的ISO-8859-1字符集的行为发生变化。如果您使用老式的多字节编码(如Shift-JIS )生成输出,则必须担心如何正确设置此参数,但现在这种情况非常少见,因为大多数理智的人都优先使用UTF-8。

票数 1
EN

Stack Overflow用户

发布于 2010-06-24 23:08:11

这似乎是一个字符编码错误。确认您正在以正确的编码读取网页,并以正确的编码显示结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3111215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档