当unescapingan®时,Firefox和神奇地出现的角色(Â)

时间:2009-04-23 14:19:28

标签: firefox forms pdf character illegal-characters

我在firefox中以®(注册字符)取消要以表单形式提交,因为实际在Javascript中输入该字符会导致脚本行为异常。

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

我这样对®字符进行了解读:

unescape("%AE")

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

有没有让它在Firefox 2/3中运行?

谢谢,
安德鲁

1 个答案:

答案 0 :(得分:3)

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

MDC: escape and unescape Functions

  

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

MSDN

  

unescape方法返回一个字符串   包含内容的值   charstring类型。所有字符编码   使用%xx十六进制形式   替换为ASCII字符集   等同物。

     

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