【发布时间】:2013-03-29 23:41:55
【问题描述】:
我试图通过更改字符代码来混淆一些 javascript,但我发现在 Python 2.7 中我无法正确打印超出特定范围的字符。
例如,这是我想要做的:
f = open('text.txt','w')
f.write(unichr(510).encode('utf-8'))
f.close()
我不能写 unichr(510),因为它说 ascii 编解码器超出范围。所以我用utf-8对其进行编码。这会将单个字符 u'\u01fe' 转换为两个 '\xc7\xbe'。
现在,在 javascript 中,很容易获得字符代码 510 的符号:
String.fromCharCode(510)
给出单个字符:Ǿ
我用 Python 得到的是两个字符:Ǿ
如果我将这些字符传递给 javascript,我将无法检索原始单个字符。
我知道可以在 python 中打印 Ǿ 字符,但我一直无法弄清楚。我已经使用 unichr() 而不是 chr(),并将其编码为“utf-8”,但我仍然不够用。我还读到 Python 3 在 chr() 函数中内置了这个功能。但这对我没有帮助。
有谁知道我怎样才能完成这项任务?
谢谢。
【问题讨论】:
-
如何将
'\xc7\xbe'传递给 JavaScript?这两个连续的字节(不要与字符 Ǿ 混淆)是 Ǿ 的 UTF-8 编码,JavaScript 应该这样识别(或者至少与 UTF-8 编码的 JS 文件中出现的 Ǿ 没有区别)。 -
我将
'\xc7\xbe'保存到一个javascript 文件中。此外,它将其视为两个单独的字符。 @jwodder
标签: javascript python character-encoding special-characters