将 Unicode 文本写入文本文件?

2024-02-13

我从 Google 文档中提取数据,对其进行处理,然后将其写入文件(最终我会将其粘贴到 Wordpress 页面中)。

它有一些非 ASCII 符号。如何将这些安全地转换为可在 HTML 源代码中使用的符号?

目前,我正在将所有内容转换为 Unicode,将它们全部连接到一个 Python 字符串中,然后执行以下操作:

import codecs
f = codecs.open('out.txt', mode="w", encoding="iso-8859-1")
f.write(all_html.encode("iso-8859-1", "replace"))

最后一行有一个编码错误:

UnicodeDecodeError:“ascii”编解码器无法解码字节 0xa0 位置 12286:序数不在范围内(128)

部分解决方案:

这个Python运行没有错误:

row = [unicode(x.strip()) if x is not None else u'' for x in row]
all_html = row[0] + "<br/>" + row[1]
f = open('out.txt', 'w')
f.write(all_html.encode("utf-8"))

但是,如果我打开实际的文本文件,我会看到很多符号,例如:

Qur’an 

也许我需要写入文本文件以外的其他内容?


尽可能专门处理 unicode 对象,方法是在第一次获取它们时将其解码为 un​​icode 对象,并在退出时根据需要对其进行编码。

如果您的字符串实际上是一个 unicode 对象,则需要在将其写入文件之前将其转换为 unicode 编码的字符串对象:

foo = u'Δ, Й, ק, ‎ م, ๗, あ, 叶, 葉, and 말.'
f = open('test', 'w')
f.write(foo.encode('utf8'))
f.close()

当您再次读取该文件时,您将获得一个 unicode 编码的字符串,您可以将其解码为 un​​icode 对象:

f = file('test', 'r')
print f.read().decode('utf8')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Unicode 文本写入文本文件? 的相关文章

随机推荐