Специальные символы на входе hunspell рассматриваются как пробел - PullRequest
0 голосов
/ 20 марта 2012

Этот вопрос был задан на суперпользователя, но получил только 8 просмотров за 7 дней.Знающие Hunspell люди переходят к stackoverflow, поэтому я снова задаю этот вопрос здесь.


Я тестирую hunspell в командной строке с помощью шведского словаря.Ввод в интерактивном режиме заменяет все специальные символы (например, å ä ö) пробелами перед проверкой заклинания.

Hunspell 1.3.2
sjögräs
& sj 15 0: SJ, aj, dj, sk, s, j, sej, sju, sjö, sjå, sa, se, ej, st, si
& gr 15 3: ge, g, r, ger, gir, gro, gör, grå, går, gry, er, nr, dr, go, kr
*

sj gr s
& sj 15 0: SJ, aj, dj, sk, s, j, sej, sju, sjö, sjå, sa, se, ej, st, si
& gr 15 3: ge, g, r, ger, gir, gro, gör, grå, går, gry, er, nr, dr, go, kr
*

Как видите, кодировка подсказки работает, показывая ä ä и ö ввход и выход.

Трубопровод дает тот же результат:

echo sjögräs | hunspell -d sv_SE

Я пытался дать различные варианты hunspell, включая -i UTF-8, -i UTF-16 и сохранение файла affSET ISO8859-1.Ничего не сработало.

То же самое происходит с французским:

C:\Users\gauthier>echo résultat | hunspell -d fr-moderne
Hunspell 1.3.2
*
& sultat 2 2: sultan, rAcsultat

с дополнительными проблемами с выводом.

Я скомпилировал hunspell в MinGW и переместил полученные необходимые файлыгде-то на моем пути, но я не думаю, что эта информация очень важна.

Как заставить hunspell распознавать специальные символы на входе?

1 Ответ

0 голосов
/ 17 мая 2012

Повторяя переменные $LC_ALL или $LANG, вы можете увидеть, какая конфигурация языка и локали у вас есть на вашем терминале.

Затем вы можете попытаться изменить ее на кодировку hunspell, переопределивэти переменные.Например, вы можете установить

LC_ALL=en_US.ISO8859-15

или

LANG=ca_ES.cp1252

Насколько я помню, набор символов по умолчанию - latin1, но я не уверен (я не с Linux правасейчас).

Попробуйте этот подход вместо модификации программного обеспечения hunspell.

...