python: 批量字符串编码/解码

python: batch string en- / decoding

我有以下问题:

我写了一个 python 脚本,它需要输入参数到 运行... 但是如果参数包括我们的德语 "umlaute" 之一,比如 äüö 或 ß,脚本将停止并显示以下内容错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 8: ordinal not in range(128)

如果我使用批处理文件启动脚本,"umlaute" 将替换为随机字符,例如 ?,ö 的其他变体....

请帮助我..谢谢:)

部分代码:

...
if batch_exe:
    try:
        aIndex = sys.argv.index("-a")
                buchungsart_regEx = sys.argv[aIndex+1]
        except:
                buchungsart_regEx = ""
else:
    ...
select_stmt = select_stmt + " AND REGEXP_LIKE (BUCHUNGSART, " + "'" + buchungsart_regEx + "')" 
...
db_list = sde_conn.execute(select_stmt) 
...

cmdinput 是这样的:

python C:\...\Script.py -i ..... -a äöüß

您可以尝试在脚本顶部添加编码类型:

# -*- coding: utf-8 -*-

检查这个答案:

你可以用他的sys.argv = win32_unicode_argv()

也许你可以用 utf-8 编码你的 sys.argv 以备将来使用。