将符号转换为其4位数的unicode转义表示形式,反之亦然

时间:2014-07-30 03:05:10

标签: python python-2.7 unicode

1)如何在python 2.7中将符号转换为4位Unicode转义表示形式 例如"¥""\u00a5"

2)如何在Windows 7/8平台上将Unicode表示转换为符号表示法 例如"\u00a5""¥"

2 个答案:

答案 0 :(得分:7)

1)是否需要\u - 逃脱? \x会工作吗?如果是,请尝试unicode_escape编解码器。否则,您可以使用以下函数进行转换:

def four_digit_escape(string):
    return u''.join(char if 32 <= ord(char) <= 126 else u'\\u%04x'%ord(char) for char in string)

symbol = u"hello ¥"
print symbol.encode('unicode_escape')
print four_digit_escape(symbol)

2)同样,您可以使用unicode_escape编解码器:

encoded_symbol = '\\u00a5'
print encoded_symbol
print encoded_symbol.decode('unicode_escape')

答案 1 :(得分:1)

我发现在python中执行此操作的最可靠方法是首先将其解码为unicode,获取unicode字符的ord并将其插入格式字符串中。它看起来像这样:

"\\u%04x" % ord("¥".decode("utf-8"))

还有一个方法unichr应该输出这样的东西,但在我的系统上它显示的编码与操作所需的编码不同。所以上面的解决方案是我能想到的最独立于平台的方式。