1
我試圖把外語文本和輸出一個人類可讀,文件名安全的等價物。環顧四周後,似乎最好的選擇是unicodedata.normalize()
,但我無法實現。我已經嘗試從一些答案在這裏和其他地方的確切代碼,但它不斷給我這個錯誤。我只有一次成功,當我跑時:Unicodedata.normalize()ValueError:無效的規範化形式
unicodedata.normalize('NFD', '\u00C7')
'C\u0327'
但是每隔一段時間,我都會遇到一個錯誤。這裏是我的代碼,我已經試過:
unicodedata.normalize('NFKD', u'\u2460') #error, not sure why. Look same as above.
s = 'ذهب الرجل'
unicodedata.normalize('NKFC',s) #error
unicodedata.normalize('NKFD', 'ñ') #error
具體來說,我得到的錯誤是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid normalization form
我不明白爲什麼這是行不通的。所有這些都是字符串,這意味着它們在Python 3中是unicode。我嘗試使用.encode()
對它們進行編碼,但normalize()
表示它只接受字符串參數,所以我知道不能這樣做。我真的很茫然,因爲即使我從這裏複製的代碼似乎錯誤了。這裏發生了什麼?
謝謝你,我我以爲我試過那個...... –