我正在尋找一種快速且可能方便的方式在Python 3中將非ASCII字母的字符串轉換爲僅帶有ascii字母的字詞。將字母不是7位ASCII轉換爲ASCII(如將n轉換爲n並將其轉換爲±)
例子!
żółw=> zolw
móżdżek=> mozdzek
羅茲=>羅茲
等等...
有國家字母許多字母可以變成ASCII字母(如ñ到n)。我可以通過指定如何翻譯每個字母來手動執行我的語言(波蘭語)。但是有沒有自動化的方法來做到這一點?或者一些圖書館會做我所需要的?
蟒蛇str.encode()
不會做,因爲"żółw".encode('ascii', 'replace') == "???w"
和"żółw".encode('ascii', 'ignore') == "w"
...
我可以做這樣的翻譯潤色信件,但我並不想這樣做,每隔語言:
>>> utf8_letters = ['ą','ę','ć','ź','ż','ó','ł','ń','ś']
>>> ascii_letters = ['a','e','c','z','z','o','l','n','s']
>>> trans_dict = dict(zip(utf8_letters,ascii_letters))
>>> turtle = "żółw"
>>> out = []
>>> for l in turtle:
... out.append(trans_dict[l] if l in trans_dict else l)
>>> result = ''.join(out)
>>> result
'zolw'
上面的代碼做了我想要的波蘭語字母,但它很醜:<這樣做的最好方法是什麼?
當然,這樣的翻譯會改變一些單詞的含義,但那是可以的。
請記住,在某些語言中,某些人認爲重音字母被認爲是該語言中的一個不同的字母。例如,瑞典語中的字母'å'通常被認爲是'a'中的一個不同的字母,而不是簡單的字母'a',在上面有一個圓環。 – dreamlax
我意識到這一點...關鍵是,當我在某處寫作波蘭語的地方,我的國家信件不被支持時,我使用我寫的這個「翻譯」。我猜其他國家的人在這種環境下有自己的寫作方式。我想知道如何完成這樣的轉換。 – Maciek
@John Saunders,謝謝你讓我的答案完全失效。 –