转换特殊字符"Ⓡ"和“& # 174;“


Convert special character "Ⓡ" and "®"

我想将"Ⓡ"answers"®"转换为可读格式。目前,当我使用

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

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

仔细查看从哪里获得字符串,看看是否可以强制它始终为UTF-8,而不管系统的默认编码是什么。(最好使用UTF-8,因为它可以表示Unicode中的任何字符;iso - 8859 - 1不能。)

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

顺便说一句,"Ⓡ"符号(U+24C7圈出拉丁大写字母R)在ISO-8859-1中不存在。只有"®"(U+00AE注册标志)可以。(不过,您可能还是想使用后者。)