Pyenchant弄亂了外國人物,拼寫檢查失敗。我的女朋友是德國人,所以單詞「häßlich」是一個真正的德語單詞,我也使用不同的拼寫檢查服務檢查了這個詞。Pyenchant弄亂了外國人物
腳本文件編碼爲ANSI,格式爲UTF-8。我試圖將這個單詞編碼和解碼成不同種類的字符編碼。
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python bindings for the enchant spellcheck
import enchant
# Enchant dictionary
enchantdict = enchant.Dict("de_DE")
# Define german word for "ugly"
word = "häßlich"
# Print the original word and the spellchecked version of it
print word, "=", enchantdict.check(word)
和輸出如下: h├ñ├ƒlich=假
另外,如果我改變腳本編碼成普通ANSI,這是我得到:
hõ¯lich = ** (python.exe:1096): CRITICAL **: enchant_dict_check: assertion `g_utf8_validate(word, len, NULL)' failed
Traceback (most recent call last):
File "C:\Temp\koe.py", line 14, in <module>
print word, "=", enchantdict.check(word)
File "C:\Python27\lib\site-packages\enchant\__init__.py", line 577, in check
self._raise_error()
File "C:\Python27\lib\site-packages\enchant\__init__.py", line 551, in _raise_
error
raise eclass(default)
enchant.errors.Error: Unspecified Error
我使用: pyenchant-1.6.5.win32.exe 蟒蛇,2.7.3.msi Windows 7的
...如果你有一個更好的拼寫檢查請介紹一下它,我會測試它:)
正是你所說的「更改腳本編碼爲純ANSI」是什麼意思?如果你的意思是ASCII,那是不可能的;您不能在ASCII中輸入「häßlich」。如果你的意思是別的......呃,這取決於你的意思。同時,'print name'可能不一定是正確的;它取決於你的終端被設置爲相同的編碼和Python的系統默認編碼(雖然有一些黑客可以解決Windows中的常見問題)。儘管如此,正如Eric MSFT所說,除非您使用Unicode字符串,否則這一切都不應該是可行的。 – abarnert