Сценарий Python 3 не работает, если в качестве аргумента командной строки передана экранированная строка Unicode - PullRequest
0 голосов
/ 22 апреля 2020

Я использую Python 3.3.x и Windows 7 64-бит. Я должен обработать экранированные строки Unicode в моей программе. Строки, которые представлены, например: "\ u0000N @@ ^ J \ u0007QEA \ u0001V ^ DNK \ u000b"

Когда я определяю такие строки непосредственно в коде и обрабатываю их, он работает правильно.

#! /usr/bin/python
# -*- coding: utf-8 -*-

import sys

vv = "\u0000N@@^J\u0007QEA\u0001V^DNK\u000b"
kk = 27

Однако, когда я передаю их через командную строку в качестве параметра, он не работает должным образом.

#! /usr/bin/python
# -*- coding: utf-8 -*-

import sys

# vv = unicode escaped string
vv = sys.argv[1]

kk = int(sys.argv[2])

И я вызываю скрипт, как показано ниже:

python code.py "\u0000N@@^J\u0007QEA\u0001V^DNK\u000b" 27

Я попытался напечатать строку обратно на консоль, и она печатает ее в точности так: \ u0000N @@ ^ J \ u0007QEA \ u0001V ^ DNK \ u000b

Я не уверен, в чем здесь проблема. Я использую MS DOS в качестве консоли.

ver command output from the console

Microsoft Windows [Version 6.1.7601]
...