我在firefox中以®
(注册字符)取消要以表单形式提交,因为实际在Javascript中输入该字符会导致脚本行为异常。
但是,我必须使用角色的非转义(..)版本,因为它被提交到后端(我无法控制),输出是一个pdf文件,使用未转义的®
以pdf格式显示。
我这样对®
字符进行了解读:
unescape("%AE")
然而......当我查看pdf文件中的®
时,它显示为®
,这只发生在Firefox中,而不是在Internet Explorer中。
有没有让它在Firefox 2/3中运行?
谢谢,
安德鲁
答案 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。