转换特殊字符“Ⓡ”和“®”

时间:2014-07-11 03:18:04

标签: php html-entities

我想将“Ⓡ”和“®”转换为可读。目前,当我使用

htmlEntities($text, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1')
时,它在我的开发(笔记本电脑/窗口)中显示出很好的可读性。但是当我在生产服务器(Centos)中设置它时,它没有显示符号。我正在使用php 5.5.14。

1 个答案:

答案 0 :(得分:1)

你告诉PHP $text字符串是用ISO-8859-1编码的。你确定这是真的吗?根据您从中获取该字符串的位置,它可能使用系统的默认编码,该编码因机器而异,在CentOS系统上可能是UTF-8。

仔细查看从哪里获取该字符串,并查看是否可以强制它始终为UTF-8,无论系统的默认编码如何。 (UTF-8是首选,因为它可以表示Unicode中的任何字符; ISO-8859-1不能。)

如果您小心地将所有字符串保持在一致的已知编码中,则可以避免需要完全调用htmlentities。只需使用Content-Type标题的charset参数告诉浏览器响应的编码(例如UTF-8),它就能理解字符。

顺便说一句,ISO-8859-1中不存在“Ⓡ”符号(U + 24C7环形拉丁文大写字母R)。只有“®”(U + 00AE注册标志)才有。 (不过,你可能想要使用后者。)