我正在打印一些日语的unicode字符串, 为什么print(s1)直接输出日语的unicode,而不是与s2日语相同?如何使s1输出“顾客”? 谢谢。
s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\\','\\u')
print(s1)
s2 = '\u9867\u5BA2'
print('\u9867\u5BA2')
print(s2)
我希望输出如下:
顧客
顧客
顧客
但实际输出如下:
\u9867\u5BA2
顧客
顧客
答案 0 :(得分:0)
\u
中的'\u9867\u5BA2'
只是一个Unicode字符的Python表示法,而不是文字的\
和u
,因此您不能只构建一个字符串文字\
和u
以及一些代码,并希望它们代表一个unicode字符。
您可以改为将字符串编码为字节,然后使用unicode_escape
编码对其进行解码,以使其成为实际的unicode字符串:
s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\\','\\u').encode().decode('unicode_escape')
print(s1)
这将输出:
顧客