簡體   English   中英

input()和文字unicode解析

[英]input() and literal unicode parsing

使用input()將反斜杠用作文字反斜杠,因此我無法使用unicode解析字符串輸入。

我的意思是:

將類似"\\uXXXX\\uXXXX\\uXXXX"的字符串粘貼到input()調用中將被解釋為"\\\\uXXXX\\\\uXXXX\\\\uXXXX"但我希望它將\\u\u003c/code>讀為單個字符,而不是兩個單獨的字符。

有誰知道如何或如有可能實現這一目標?

編輯:我正在接受上述輸入,並將其轉換為如下的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)

如果可以確定輸入中不包含引號,則可以通過在兩端加上引號將輸入轉換為字符串文字表示形式,然后使用ast.literal_eval()將其求值為字符串。 范例-

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

如果輸入中可以包含引號,則可以在使用ast.literal_eval進行評估之前,將雙引號替換為r'\\"'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM