我正在为我的应用程序使用一些本地化资源,我在使用Python中的特殊字符处理字符串时遇到了一些麻烦。
注意:我已经在SO上阅读了相关的问题,但是我无法解决这个问题,我不是先解决这个问题而不先看看
假设我正在处理土耳其语资源文件,我有以下字符串:
çıkardınız
现在,如果我将此String复制/粘贴到记事本中,它就会正确显示(Sublime Text显示带有此String的文本文件具有UTF-8编码)。 然后我在Python控制台中加载String并尝试将其打印到文件中,只需:
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'
现在,我知道这在技术上是原始字符串的正确值,但我需要打印它,就像我将其手动粘贴到记事本中一样。 另外,我需要一种方法,它可以使用没有特殊字符的字符串,就像英语中的随机单词一样。
很抱歉(可能)不那么聪明的问题,但我无法理解这件事。 谢谢!
答案 0 :(得分:0)
但我需要打印它就像我手动粘贴到 记事本中。
"çıkardınız".encode("utf8")
会将字符串转换为字节序列。
通过print
函数传递将 UTF-8 字符串原样写入文件{{ 1}}打开文件时的参数:
encoding='utf8'