python:批处理字符串en- /解码

时间:2015-03-26 14:19:25

标签: python batch-file decode encode

我有以下问题:

我写了一个python脚本,它需要输入参数才能运行...但是如果参数包含我们的德语“umlaute”之一,如äüö或ß,则脚本会因以下错误而停止:

  

UnicodeDecodeError:'ascii'编解码器无法将字节0xfc解码到位   8:序数不在范围内(128)

如果我用批处理文件启动脚本,那么“umlaute”会被替换为随机字符,例如?,ö......的其他一些变体。

请帮助我.. thx:)

部分代码:

...
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 äöüß

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

检查此答案:https://stackoverflow.com/a/846931/1686094

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

然后,您可以使用sys.argvutf-8进行编码以备将来使用。