|
|
|
dlebedev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.4.2012 Репутация: нет Всего: нет |
Здравствуйте.
Помогите решить проблему с отображением кириллицы в консоли эрланга под виндой. Задавал вопрос на erlanger.ru, но там уровень активности местной фауны чуть выше нуля и реальной помощи я так и не получил. Ситуация такая: есть программа, написанная на erlang (серверная часть программы) и крутится она под версией erlang R12B (erts-5.6.5). Если запустить сервер через bat-файл, а не как сервис, то можно заниматься отладкой и наблюдать за отладочными сообщениями... Русские слова из базы данных отображаются корректно (и ввод русских слов с клавиатуры обрабатывается корректно). Однако если взять версию erlang поновее (R14B04 (erts-5.8.5)), то начинаются проблемы на ровном месте. Все русские словечки отображаются в некорректной кодировке (CP1252 вместо CP1251), причем это относится как в выводу на экран, так и вводу с клавиатуры. То есть, чтобы передать в функцию параметр "Россия", например, приходится перекодировать его в "Ðîññèÿ". Я даже не знаю, куда копать. Жутко неудобно и вообще, так быть не должно! Пробовал сравнивать файлы от обеих версий erlang - безнадежно. Yичего подозрительного не нашел). Пробовал в реестре подменять кодовые страницы для CP1250 и CP1252 на CP1251. Эффект нулевой. Похоже erlang клал на настройки винды с высокой колокольни. Грешу именно на версию erlang, потому что это единственное, что меняется. Erlang старой верси мне достался по наследству и вообще шел вместе с дистрибутивом программы. Новую версию качал с офф.сайта. Может кто встречал такой глюк и знает, как его победить? |
|||
|
||||
k0rvin |
|
|||
Опытный Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
попробуй в bat-файле сменить кодировку с помощью chcp
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
dlebedev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.4.2012 Репутация: нет Всего: нет |
Не помогло. Пробовал запускать erl и werl (как я понял из исходников эрланга, есть небольшая разница между ними), но результат один и тот же. Пробовал собрать erlang из исходников, но тоже потерпел неудачу. Может потому что не сильно старался... Не знаю. Меня напрягло, что нужно ставить MS SDK 7.1, wxWidgets, MSYS и perl и компилить все это черт знает чем. Не осилил в общем. Правда в исходниках покопался и знаете что? Не нашел я там каких-то хитрых ключей для указания кодировок для erlang-машины. Был один ключ у wxWidgets (о поддержке Unicode) и все. Может плохо смотрел? |
|||
|
||||
dlebedev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.4.2012 Репутация: нет Всего: нет |
В общем, проблема решилась написанием обертки вокруг библиотечной функции io:fwrite, которая при необходимости перекодирует кириллицу из cp1251 в utf8. Можно аналогичные обертки и вокруг других функций сделать, но мне без надобности.
|
|||
|
||||
Правила форума «Функциональные языки: общие вопросы» | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |