【发布时间】:2016-12-23 20:51:11
【问题描述】:
我正在为我的应用使用一些本地化资源,但在 Python 中处理带有特殊字符的字符串时遇到了一些问题。
注意:我已经阅读了关于 SO 的相关问题,但我无法解决这个问题,我不是在没有先查看的情况下输入这个问题
假设我正在处理土耳其语资源文件并且我有以下字符串:
çıkardınız
现在,如果我将此字符串复制/粘贴到记事本中,它会正确显示(Sublime Text 显示带有此字符串的文本文件具有 UTF-8 编码)。 然后我在 Python 控制台中加载字符串并尝试将其打印到文件中,只需:
f = open(d + "C:\\somepath\\test.txt", "w")
print("çıkardınız", file=f)
f.close()
我收到了UnicodeEncodingError。我尝试使用encode("utf8"),但我在记事本中得到了这个结果:
b'\xc3\xa7\xc4\xb1kard\xc4\xb1n\xc4\xb1z'
现在,我知道这在技术上是该原始字符串的正确值,但我需要打印它,就像我将它手动粘贴到记事本中一样。 另外,我还需要一种可以处理没有特殊字符的字符串的方法,比如英文中的随机单词。
对于这个(可能)不太聪明的问题,我很抱歉,但我就是无法理解这件事。 谢谢!
【问题讨论】:
标签: python string unicode encoding utf-8