Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将波兰语字符作为Python参数输入CMD?_Python_Python 2.7_Cmd_Diacritics - Fatal编程技术网

如何将波兰语字符作为Python参数输入CMD?

如何将波兰语字符作为Python参数输入CMD?,python,python-2.7,cmd,diacritics,Python,Python 2.7,Cmd,Diacritics,我刚开始学习Python编码,我有一个简单的Python程序,它返回Cześć,其中是用户可以输入到CMD中作为此Python程序的参数的名称。如果没有输入,它将返回CześćŚwiat。它工作得很好,但是当我输入名称Łukasz时,它从Ł中删除了罢工,程序返回CześćLukasz而不是正确的Cześukasz 在Windows CMD中,我使用CD命令转到包含Python程序的文件夹,并在那里使用语句执行Python程序:hello.pyŁukasz 我的脚本如下所示(它最初来自Google

我刚开始学习Python编码,我有一个简单的Python程序,它返回
Cześć
,其中
是用户可以输入到CMD中作为此Python程序的参数的名称。如果没有输入,它将返回
CześćŚwiat
。它工作得很好,但是当我输入名称
Łukasz
时,它从
Ł
中删除了罢工,程序返回
CześćLukasz
而不是正确的
Cześukasz

在Windows CMD中,我使用CD命令转到包含Python程序的文件夹,并在那里使用语句执行Python程序:
hello.pyŁukasz

我的脚本如下所示(它最初来自Google的Python练习(),我对其进行了编辑,使其在Python 2.7版中适用于unicode字符,并将“hello”替换为“cześć”(例如):

最初我用utf-8解码了
sys.argv[1]
,但不知怎的,当我使用字母
Óó
时,它会抛出一个丑陋的异常(请参阅)。使用
utf-8
cp1252
会导致波兰字母(例如,
cp1252
时,除了字母
似乎保持其重音外,其他字母的重音会被去除,因为将该字母与utf-8一起使用会导致前面提到的异常

所以我的问题是,如何从CMD中完整地检索带有重音符号的字符串,以便在Python程序中使用


我不会接受建议删除/忽略重音的答案

sys.argv
不接受Unicode,字符被截断为标准ANSI字符页。升级到Python 3将解决您的问题。

sys.argv
不接受Unicode,字符被截断为标准ANSI字符页。升级到Python 3将解决您的问题。

Wow。。。Python3甚至不再需要
u'some string'
和解码/编码,它只接受我在使用变音符号!谢谢:)哇。。。Python3甚至不再需要
u'some string'
和解码/编码,它只接受我在使用变音符号!谢谢:)
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

# Define a main() function that prints a little greeting.
    def main():
  # Get the name from the command line, using 'World' as a fallback.
  if len(sys.argv) >= 2:
    name = sys.argv[1].decode('cp1252')
  else:
    name = u'Świat'
  str = u'Cześć '+name
  print str.encode('utf-8')

# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
  main()