如何从 python 中的 zip 文件中的配置文件写入捷克字符?
How to write czech characters from configuration file in zip file in python?
我需要在 zip 文件中用捷克语写一些文本。捷克语文本存储在 config.ini
中,如下所示:
[txt]
content_bez = UPOZORNĚNÍ: V tomto katastrálním území není provedena digitalizace katastrální mapy.
据我了解,首先我需要将字符串文本转换为字节才能写入 zip。我是这样得到的:
content_bez_bytes = config['txt']['content_bez'].encode()
然后我尝试创建这样的文本文件:
with ZipFile(each_zip, 'a') as z:
with z.open(text_path, 'w') as tx:
tx.write(content_bez_bytes)
其中 each_zip
是我要创建文本文件的每个 zip 文件,text_path
是我正在创建的文本文件的路径。但我在结果文本文件中得到的是:
UPOZORNÄšNĂŤ: V tomto katastrálnĂm ĂşzemĂ nenĂ kompletnÄ› provedena digitalizace katastrálnĂ mapy.
.
但它工作得很好,当我像这样将捷克语文本直接写入代码时:
content_bez = "UPOZORNĚNÍ: V tomto katastrálním území není provedena digitalizace katastrální mapy."
content_bez_bytes = content_bez.encode()
所以我猜它必须与配置文件的转换有关。我确实在代码和配置文件的开头都插入了它,但没有改变:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
.
有人知道我哪里出错了吗?
我想通了。
读取配置文件时,我需要使用:
config.read(file, encoding='utf-8')
不只是
config.read(file)
我需要在 zip 文件中用捷克语写一些文本。捷克语文本存储在 config.ini
中,如下所示:
[txt]
content_bez = UPOZORNĚNÍ: V tomto katastrálním území není provedena digitalizace katastrální mapy.
据我了解,首先我需要将字符串文本转换为字节才能写入 zip。我是这样得到的:
content_bez_bytes = config['txt']['content_bez'].encode()
然后我尝试创建这样的文本文件:
with ZipFile(each_zip, 'a') as z:
with z.open(text_path, 'w') as tx:
tx.write(content_bez_bytes)
其中 each_zip
是我要创建文本文件的每个 zip 文件,text_path
是我正在创建的文本文件的路径。但我在结果文本文件中得到的是:
UPOZORNÄšNĂŤ: V tomto katastrálnĂm ĂşzemĂ nenĂ kompletnÄ› provedena digitalizace katastrálnĂ mapy.
.
但它工作得很好,当我像这样将捷克语文本直接写入代码时:
content_bez = "UPOZORNĚNÍ: V tomto katastrálním území není provedena digitalizace katastrální mapy."
content_bez_bytes = content_bez.encode()
所以我猜它必须与配置文件的转换有关。我确实在代码和配置文件的开头都插入了它,但没有改变:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
.
有人知道我哪里出错了吗?
我想通了。
读取配置文件时,我需要使用:
config.read(file, encoding='utf-8')
不只是
config.read(file)