如何在 Python 中强制输出 Latin-1(我猜是 iso-8859-1?)文件?
这是我目前的代码。它有效,但尝试将生成的输出文件导入 Latin-1 MySQL 表会产生 weird encoding errors .
outputFile = file( "textbase.tab", "w" )
for k, v in textData.iteritems():
complete_line = k + '~~~~~' + v + '~~~~~' + " ENDOFTHELINE"
outputFile.write(complete_line)
outputFile.write( "\n" )
outputFile.close()
生成的输出文件似乎保存为“Western (Mac OS Roman)”,但如果我随后将其保存为 Latin-1,我仍然会遇到奇怪的编码问题。我如何确保所使用的字符串和文件本身在生成时都以 Latin-1 编码?
原始字符串(在 textData
字典中)已从 RTF 文件中解析出来 - 我不知道这是否有所不同。
我对 Python 和一般的编码有点陌生,如果这是一个愚蠢的问题,我深表歉意。我已经尝试查看文档,但还没有深入了解。
我正在使用 Python 2.6.1。
最佳答案
只需使用 codecs
写入文件的模块:
import codecs
outputFile = codecs.open("textbase.tab", "w", "ISO-8859-1")
当然,你写的字符串必须是Unicode字符串(type unicode
),如果是普通的str
对象(基本上是只是字节数组)。我猜您也在使用普通的 Python 文件对象读取 RTF 文件,因此您可能还必须将其转换为使用 codecs.open
。
关于Python:如何强制输出 iso-8859-1 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191730/