Bug 11718 - incorrect parsing of UTF-8 files
Summary: incorrect parsing of UTF-8 files
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: ALDConvert (show other bugs)
Version: unstable
Hardware: all Linux
: P5 blocker
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-07 17:55 MSD by kirill
Modified: 2012-04-17 12:49 MSK (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 2007-05-07 17:55:05 MSD
Обнаруживает фиктивные синтаксические ошибки в файлах в UTF-8.

Пример файла:
http://git.altlinux.org/people/kirill/packages/?p=docs-install2-kirill.git;a=blob;f=doc/index.m-k;hb=heap

$ file index.m-k
index.m-k: UTF-8 Unicode text
$ LC_ALL=POSIX ALDConvert -t index.m-k
Traceback (most recent call last):
  File "/usr/libexec/ALDConvert/ALDConvert.py", line 123, in ?
    result = reader(s)
  File "/usr/libexec/ALDConvert/ALDC.py", line 28, in __call__
    ret=tpg.Parser.__call__(self,self.prefilter(txt))
  File "/usr/lib/python2.4/site-packages/tpg.py", line 933, in __call__
    return self.parse('START', input, *args, **kws)
  File "/usr/lib/python2.4/site-packages/tpg.py", line 956, in parse
    raise SyntacticError((line, column), "Syntax error near %s"%last_token)
tpg.SyntacticError: SyntacticError at line 32, column 1: Syntax error near 

$ iconv -f utf-8 -t koi8-r index.m-k > /tmp/o.m-k
$
Comment 1 Fr. Br. George 2007-05-09 21:05:19 MSD
Сюрприз! Python-овские регулярные выражения, похоже, _вообще_ не работают с
кодировкой UTF-8. Или я не знаю как.
Comment 2 Vitaly A. Ostanin 2007-05-11 14:01:30 MSD
Можно попробовать так:
if not hasattr(sys, 'setdefaultencoding'):
  reload(sys)
sys.setdefaultencoding('utf_8')

Но это хак. Или можно перекодировать входящий поток в то, что в питоне называют
UNICODE. В любом случае нужно детектить кодировку документа.

Желательно это сделать оперативно, иначе для сборки документации к дистрибутиву
в пакеты придётся перекодировать исходные документы из utf-8 вручную.
Comment 3 Vitaly A. Ostanin 2007-05-11 17:13:52 MSD
В общем, если до вторника эту ошибку не исправят, я добавлю в rpm-build-docs
очередной костыль - перекодирование с помощью enca.
Comment 4 Vitaly A. Ostanin 2007-05-17 18:57:52 MSD
Добавил костыль, доступен здесь:
http://git.altlinux.org/people/vyt/packages/?p=rpm-build-docs.git;a=commit;h=f521925bf7cf5518765ac5efbf52ac0eff9cea78

install2.kirill с ним собрался
Comment 5 Fr. Br. George 2007-06-03 15:04:14 MSD
(In reply to comment #2)
> Можно попробовать так:
> if not hasattr(sys, 'setdefaultencoding'):
>   reload(sys)
> sys.setdefaultencoding('utf_8')
Это не заработает :(
> Или можно перекодировать входящий поток в то, что в питоне называют
> UNICODE.
С налёту поставить везде u'...' вместо '...' не помогло. Значит, требует
переписывания и тестирования всех модулей конвертора :((.
Comment 6 Mikhail Gusarov 2008-02-16 00:13:27 MSK
Наступило ли LATER?
Comment 7 Fr. Br. George 2008-03-24 10:35:44 MSK
(In reply to comment #6)
> Наступило ли LATER?

Нет :(. Upstream заморозил разработку :((
Comment 8 Fr. Br. George 2012-04-17 12:49:38 MSK
Надеюсь, это больше нигде не используется