cag*_*age 4 python jython python-2.7
我有一个 3rd 方应用程序,它读取 utf-16-le 的 Unicode 文件。出于某种原因,它必须有一个 BOM,否则它不会读取文件。
我在编写这种编码的输出文件时遇到了很多困难,所以我想我会在这里记录我的解决方案,供其他可能遇到相同问题的人使用。
import codecs
mytext = "Help me"
with open("c:\\temp\\myFile.txt", 'w') as f:
f.write(codecs.BOM_UTF16_LE)
f.write(mytext.encode('utf-16-le'))
Run Code Online (Sandbox Code Playgroud)
我被以下线程中选择的“正确答案”严重误导了。
write('\ufeff')
Run Code Online (Sandbox Code Playgroud)
不会将所需的 BOM 标记写入文件(至少我使用 Python 2.7 时没有)您需要
write('\xff\xfe')
Run Code Online (Sandbox Code Playgroud)
我没有足够的声誉来发布它,所以我在将文件保存在 python 中的同时发布了我自己的 添加 BOM(unicode 签名)
我认为这与UCS-2 Little Endian, Java中的 Java Write 文本文件中的问题完全相同
import codecs
mytext = "Help me"
with open("c:\\temp\\myFile.txt", 'w') as f:
f.write(codecs.BOM_UTF16_LE)
f.write(mytext.encode('utf-16-le'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11134 次 |
| 最近记录: |