Bug 11718 - incorrect parsing of UTF-8 files
: incorrect parsing of UTF-8 files
Status: CLOSED WONTFIX
: Sisyphus
(All bugs in Sisyphus/ALDConvert)
: unstable
: all Linux
: P5 blocker
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-05-07 17:55 by
Modified: 2012-04-17 12:49 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-05-07 17:55:05
Обнаруживает фиктивные синтаксические ошибки в файлах в 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 From 2007-05-09 21:05:19 -------
Сюрприз! Python-овские регулярные выражения, похоже, _вообще_ не работают с
кодировкой UTF-8. Или я не знаю как.
------- Comment #2 From 2007-05-11 14:01:30 -------
Можно попробовать так:
if not hasattr(sys, 'setdefaultencoding'):
  reload(sys)
sys.setdefaultencoding('utf_8')

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

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

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

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