parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

^file::exec[...] и кодировка данных

BeaVe 18.10.2006 11:55

Использую такой код:
$fSpell[^file::exec[$sScriptPath/$sScriptFilename;
	$.CGI_SPELL_FILE[$sTempPath/$sTempFilename]
	$.CGI_SPELL_DICT[$sDictionary]
]]
Вызываю aspell.sh следующего содержания:
#!/bin/sh

#export PATH=/usr/local/bin:/usr/bin;

export LC_ALL=en_US.utf8;

locale;

if [ ! "$CGI_SPELL_DICT" = "" ]; then
	export SPELL_DICT="-d $CGI_SPELL_DICT"
fi

if [ "$CGI_SPELL_FILE" = "" ]; then
	echo ERROR: temporary file not specified;
else
	echo "run: aspell -a $SPELL_DICT < $CGI_SPELL_FILE";
	exec aspell -a $SPELL_DICT < $CGI_SPELL_FILE;
fi
Получаю результат:
LANG=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
run: aspell -a -d ru < /home/labour/data/tmp/spellcheck.txt
@(#) International Ispell Version 3.1.20 (but really Aspell 0.61-cvs)
*
& собакак 3 4: собака, собаках, собакам
& бегакт 22 12: бегают, бегает, бег акт, бег-акт, бегать, бегаете, бегайте, бегаю, бегай, бегал, бегая, богат, легат, регат, бегаем, бегала, бегали, бегало, теракт, легато, регата, богатый
*
+ быстрый
*
+ деревня

& Дони 40 1: Одни, Дохни, Донги, Донки, Доньи, До ни, До-ни, Дни, Дои, Дон, Они, Дани, Доги, Дохи, Доки, Доли, Дона, Доне, Донг, Донн, Дону, Доны, Дожи, Дыни, Гони, Кони, Пони, Сони, Вони, Дуни, Тони, Донный, Одень, Добить, Долить, Донять, Допить, Дошить, Фонить, Доешь
& Браско 91 6: Броско, Барскою, Барское, Барской, Барском, Басок, Братскою, Братское, Братской, Братском, Баском, Басков, Браком, Браков, Раскол, Раскоп, Братск, Барски, Баск, Брак, Браток, Бросок, Брусок, Красок, Брассом, Братком, Братков, Братски, Бражкою, Бражкой, Броскою, Броское, Броской, Броском, Бросков, Бруском, Брусков, Краскою, Краской, Братска, Братске, Братску, Банко, Баска, Баске, Баски, Баску, Брака, Браке, Браки, Браку, Брасс, Браво, Брюшко, Брасса, Брассе, Брассу, Братка, Братке, Братки, Братку, Бражка, Бражке, Бражки, Бражку, Броска, Броске, Броски, Броску, Бруска, Бруске, Бруски, Бруску, Фиаско, Франко, Краска, Краске, Краски, Краску, Красно, Кратко, Тряско, Барский, Барка, Братский, Раскат, Раскис, Раса, Баранка, Броский, Бабка
& неплахой 19 16: неплохой, не плахой, не-плахой, непалкой, плахой, неплавкой, неуплатой, неплохо, неплохою, неплохое, неплохом, неправой, неслабой, неплавкий, неправый, неслабый, непалка, плаха, неуплата
& амереканскии 6 25: американскими, американски, американские, американских, американский, американским
*
Но если закоментировать "export LC_ALL", то я не увижу ни одной русской буквы:
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
run: aspell -a -d ru < /home/labour/data/tmp/spellcheck.txt
@(#) International Ispell Version 3.1.20 (but really Aspell 0.61-cvs)
*
*
*
...
*
*
*
& г&#65533; 4 26: &#65533;&#65533;&#65533;, &#65533;&#65533;&#65533;, &#65533;&#65533;&#65533;, &#65533;&#65533;&#65533;
*
*
...
Пробовал добавить $.charset[UTF-8], результат был таким же. На самом деле смущают значения POSIX... Может я что-то забыл? Или же это связано с тем, что Парсер не особо на "ты" с UTF-8?


Дополнительная информация.
Версия Parser: 3.2.1sp2 (compiled on i686-pc-linux-gnu).
Значения $request:charset и $response:charset: по умолчанию (UTF-8).