input()和文字unicode解析

用户名

使用input()将反斜杠用作文字反斜杠,因此我无法使用Unicode解析字符串输入。

我的意思是:

将类似字符串的内容粘贴"\uXXXX\uXXXX\uXXXX"input()通话中将被解释为,"\\uXXXX\\uXXXX\\uXXXX"但我希望将其读取\u为单个字符,而不是两个单独的字符。

有谁知道如何或如有可能实现这一目标?

编辑:我正在接受如上所述的输入并将其转换为如下的ascii。

import unicodedata

def Reveal(unicodeSol):
    solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
    print(solution)

while(True):
    UserInput = input("Paste Now: ")
    Reveal(UserInput)

根据我标记的答案,正确的解决方案是:

import unicodedata
import ast

def Reveal(unicodeSol):
    solution = unicodedata.normalize('NFKD', unicodeSol).encode('ascii', 'ignore')
    print(solution)

while(True):
    UserInput = ast.literal_eval('"{}"'.format(input("Paste Now: ")))
    Reveal(UserInput)
阿南德·库玛(Anand S Kumar)

如果可以确定输入中不包含引号,则可以通过在两端加上引号将输入转换为字符串文字表示形式,然后将其ast.literal_eval()用于评估为字符串。例子 -

import ast
inp = input("Input : ")
res = ast.literal_eval('"{}"'.format(inp))

如果输入中可以包含引号,则可以r'\"'在使用ast.literal_eval进行评估之前将双引号替换为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章