就像在python 2.7中一样,我可以将所有unicode字符串保存到Python源代码中。
在以下代码中,
#!/usr/bin/python
#coding:utf-8
a = u'我很好,你呢?'
with open('test.txt', 'wb') as f:
f.write(repr(a))
我所期望的是给我发回带有以下措词的txt
u'\ u6211 \ u5f88 \ u597d \ u002C \ u4f60 \ u5462 \ u003F'
但事实证明是
u'\ u6211 \ u5f88 \ u597d,\ u4f60 \ u5462吗?'
为什么不处理标点符号?反正还有标点符号吗?
已更新: 虽然我会在评论中建议@Blckknght建议,因为使用其他编码对于我的目的还是可以的,但是我仍然愿意看是否有将标点符号另存为python字符串的答案。谢谢。
答案 0 :(得分:2)
repr()
具有Unicode字符串的固定表示形式。如果您希望函数以不同的方式显示,则必须编写自己的函数:
#coding:utf8
def my_repr(s):
return "u'" + ''.join(r'\u{:04x}'.format(ord(c)) for c in s) + "'"
s = u'我很好,你呢?'
print my_repr(s)
输出:
u'\u6211\u5f88\u597d\u002c\u4f60\u5462\u003f'
(但这感觉像是XY问题)