2017-02-13 12 views
0

Python 3では、一般的な言語固有の文字を英字に置き換える方法はありますか?
は、例えば、私は、与えられたIPに接続されている都市名を返す関数get_city(IP)を、持っています。それは外部データベースに接続するので、エンコード方法を変更することはできません。データベースからの価値が得られつつあります。
私のような何かをしたいと思います: Pythonの言語固有の文字を英語の文字に置き換えます。

city = "České Budějovice" 
city = clear_name 
print(city) #should return "Ceske Budejoice" 

は、ここで私は、チェコ語の言語を使用しますが、一般的には任意の非アジア系のlangaugeで動作するはずです。

答えて

2

unidecodeをお試しください:

# coding=utf-8 
from unidecode import unidecode 

city = "České Budějovice" 
print(unidecode(city.decode('utf-8'))) 

、必要に応じてプリントCeske Budejovice(あなたのポストは、タイプミスがあると仮定した場合)。

1

この場合、unicodedataモジュールを使用してください。あなたはunicodedata.normalize()unicodedata.combining()機能使用して、指定された文字列を正規化しなければならない必要な結果を得るために

import unicodedata 

city = "České Budějovice" 
normalized = unicodedata.normalize('NFD', city) 
new_city = u"".join([c for c in normalized if not unicodedata.combining(c)]) 

print(new_city) # Ceske Budejovice 

NFDは、Unicode正規化が

http://www.unicode.org/reports/tr15/

フォーム4 の一つであります
関連する問題