Bug 16302 - Кракозябры на терминале в локали UTF-8
Summary: Кракозябры на терминале в локали UTF-8
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: aspell (show other bugs)
Version: unstable
Hardware: all Linux
: P2 major
Assignee: Alexei Takaseev
QA Contact: qa-sisyphus
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2008-07-08 00:31 MSD by kirill
Modified: 2008-09-10 21:39 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kirill 2008-07-08 00:31:52 MSD
$ echo $LANG
ru_RU.UTF-8
$ file q
q: UTF-8 Unicode text
$ aspell -c q
<крокозяблы на экране>

в восьмибитной локали (koi8-r) всё нормально
Comment 1 Slava Semushin 2008-07-10 13:39:04 MSD
Обычные ошибки выводятся в консоль нормально, потому что gettext() используется. А проблема с кракозябрами из-за использования ncurses, который, как известно, не поддерживает юникод.

Об этом даже написано в README:

A.3.1 Unicode Support
---------------------

In order for Aspell to correctly spell check UTF-8 documents in full
screen mode the "wide" version of the curses library must be installed.
This is different from the normal version of curses library, and is
normally named `libcursesw' (with a `w' at the end) or `libncursesw'.
UTF-8 documents will not display correctly without the right curses
version installed.


Так что исправляется это очень просто:
- Вместо libncurses-devel прописать libncursesw-devel в BuildRequires
- добавить опцию --enable-wide-curses в вызов %configure

После этого у меня всё заработало нормально (в однобитной локали, правда, не проверял).
Comment 2 Slava Semushin 2008-07-11 06:52:12 MSD
Исправление доступно в моём git repo.
Comment 3 Slava Semushin 2008-07-14 21:33:35 MSD
Исправлено в 0.60.5-alt3