代码之家  ›  专栏  ›  技术社区  ›  leeand00

火狐和神奇地出现字符(_)时,unescaping an?

  •  0
  • leeand00  · 技术社区  · 16 年前

    我在找一个 ® (注册字符)在firefox中以一种形式提交,因为在javascript中实际键入该字符会导致脚本行为异常。

    但是,我必须使用字符的未scaped(..)版本,因为它正被提交到后端(我没有控制权),并且输出是使用未scaped的PDF文件 以PDF格式显示。

    我逃脱不了 像这样的角色:

    unescape("%AE")

    但是…当我看到 在PDF文件中,它显示为 ® ,这只在Firefox中发生,而不是在Internet Explorer中。

    在火狐2/3中是否有任何方法可以让它工作?

    谢谢,
    安得烈

    1 回复  |  直到 16 年前
        1
  •  3
  •   viam0Zah    16 年前

    afaik,unescaping之后,mozilla返回 ® ,但不是。(%c2%ae以十六进制表示,和 %C2 意思是那个奇怪的角色 Â 出现在PDF中。)Internet Explorer和Mozilla以不同的方式对字符串进行解压缩。您应该设置一个显式的字符编码,主要是UTF-8。

    MDC: escape and unescape Functions :

    escape和unescape函数 不适用于非ASCII 字符和已被弃用。 在javascript 1.5及更高版本中,使用 encodeuri,解码uri, 编码成分,以及 解码组件。

    MSDN :

    unescape方法返回一个字符串 包含以下内容的值 碳链。所有字符编码 十六进制形式为 替换为其ASCII字符集 当量。

    以%uxxxx格式编码的字符 (Unicode字符)替换为 十六进制的Unicode字符 编码xxxx。