我似乎和其他发展中的人有着相反的问题。我需要从字符串生成转义字符。例如,假设我有一个单词MESSAGE:
,我需要生成:
\\u004D\\u0045\\u0053\\u0053\\u0041\\u0047\\u0045\\u003A\\u0053\\u0069\\u006D
使用Python最接近我的是:
^{pr2}$我的第一个想法是我可以用\u00
代替{
在所有人开始“回答”和拒绝投票之前,逃出的\u00...
字符串是我的应用程序从另一个我无法控制的第三方应用程序获得的。我正在尝试生成我自己的测试数据,这样我就不必依赖第三方应用程序了。在
如果没有BMP(>;0xFFFF)之外的字符,则无需执行.encode()步骤:
我认为这个(快速和肮脏)代码可以满足您的需要:
或者如果你想要更多的“\”:
^{pr2}$如果十六进制代码绝对需要大写:
Pierre的答案几乎是正确的,但是对于U+FFFF以上的字符,
for x in u'MESSAGE:'
位将失败,除了“窄构建”(主要是在Windows上的Python1.6-3.2),它使用UTF-16作为Unicode字符串。在在'wide builds'(在3.3+中,这种区别已经不存在,}。当这个代码点是UTF-16BE编码的时,会得到两个占用四个字节的代理项,因此输出是
len(unichr(0x10000))
是1
不是{'\\uD800DC00'
,而不是您可能想要的u'\\uD800\\uDC00'
。在要在Python的两个变体上覆盖它,可以执行以下操作:
相关问题 更多 >
编程相关推荐