我正在从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‘编解码器无法解码位置12286处的字节0xa0 :序数不在范围内(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
也许我需要写一些不同于文本文件的东西?
发布于 2011-05-18 16:49:01
通过在第一次获取对象时将其解码为unicode对象,并在输出时根据需要对其进行编码,以尽可能多地专门处理unicode对象。
如果字符串实际上是unicode对象,则需要在将其写入文件之前将其转换为unicode编码的字符串对象:
foo = u'Δ, Й, ק, م, ๗, あ, 叶, 葉, and 말.'
f = open('test', 'w')
f.write(foo.encode('utf8'))
f.close()
当您再次读取该文件时,您将获得一个unicode编码的字符串,您可以将其解码为unicode对象:
f = file('test', 'r')
print f.read().decode('utf8')
发布于 2016-01-29 13:49:09
在Python 2.6+中,您可以对Python 3中的默认设置(builtin open()
)执行use io.open()
操作:
import io
with io.open(filename, 'w', encoding=character_encoding) as file:
file.write(unicode_text)
如果您需要递增地编写文本(不需要多次调用unicode_text.encode(character_encoding)
),它可能会更方便。与codecs
模块不同,io
模块具有适当的通用换行符支持。
发布于 2017-10-15 01:01:53
Unicode字符串处理在Python3中已经标准化。
(32位Unicode到可变字节长度的utf-8转换会自动从内存转换到文件。)
out1 =“(Open )”fobj = open("t1.txt","w",encoding="utf-8") fobj.write(out1) fobj.close() ()嘉南大圳ㄐㄧㄚㄋㄢ‘ㄉㄚˋㄗㄨㄣˋ
https://stackoverflow.com/questions/6048085
复制相似问题