0

®在 Firefox 中将一个(注册字符)转义为以表单形式提交,因为实际上将该字符输入 Javascript 会导致脚本行为异常。

但是,我必须使用字符的未转义(..)版本,因为它被提交到后端(我无法控制)并且输出是一个 pdf 文件,它使用未转义®的 pdf 格式显示。

我像这样对角色进行转义®

unescape("%AE")

但是......当我®在 pdf 文件中查看它时,它显示为®,这只发生在 Firefox 中,而不是 Internet Explorer。

有没有办法让它在 Firefox 2/3 中工作?

谢谢,
   安德鲁

4

1 回答 1

3

AFAIK,在取消转义后,Mozilla 返回 Unicode 表示®,但 IE 不返回。(十六进制的“%C2%AE”,%C2表示ÂPDF 中出现的奇怪字符。) Internet Explorer 和 Mozilla 以不同的方式对字符串进行转义。您应该设置明确的字符编码,主要是 UTF-8。

MDC:转义和取消转义功能

escape 和 unescape 函数不适用于非 ASCII 字符,已被弃用。在 JavaScript 1.5 及更高版本中,使用 encodeURI、decodeURI、encodeURIComponent 和 decodeURIComponent。

MSDN

unescape 方法返回一个包含 charstring 内容的字符串值。以 %xx 十六进制形式编码的所有字符都将替换为其 ASCII 字符集等效项。

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

于 2009-04-23T15:30:51.457 回答