【问题标题】:Convert special character "Ⓡ" and "®"转换特殊字符“Ⓡ”和“®”
【发布时间】:2014-07-11 03:18:03
【问题描述】:

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

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

【问题讨论】:

  • "to readable" 你看不懂@zerkms :-)
  • @Dagon:现在确实有道理,谢谢;-D
  • 不可能知道您的服务器在 dev/prod 之间的配置差异,但通常只使用 utf-8 编码。设置标题如Content-Type: text/html; charset=utf-8 问题已解决。

标签: php html-entities


【解决方案1】:

你告诉 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 注册标志)可以。 (不过,您可能还是想使用后者。)

【讨论】:

    猜你喜欢
    • 2017-02-03
    • 2013-10-03
    • 1970-01-01
    • 2022-07-10
    • 2012-09-02
    • 2015-07-10
    • 2019-11-04
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多