繁体   English   中英

如何正确地将带有特殊字符的Unicode / UTF-8字符串写入txt文件?

[英]How to correctly write a Unicode/UTF-8 String with special characters to a txt file?

我正在为我的应用程序使用一些本地化资源,并且在使用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'

现在,我知道这在技术上是原始字符串的正确值,但我需要打印它,就像我将其手动粘贴到记事本中一样。 另外,我需要一种方法,它可以使用没有特殊字符的字符串,就像英语中的随机单词一样。

对不起(可能)不那么聪明的问题,但我无法理解这件事。 谢谢!

但我需要打印它,就像我手动粘贴到记事本中一样。

"çıkardınız".encode("utf8")将字符串转换为字节序列。
通过print函数将UTF-8字符串原样写入文件,并在打开文件时传入encoding='utf8'参数:

f = open(d + "C:\\somepath\\test.txt", "w", encoding='utf8')
print("çıkardınız", file=f)
f.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM