Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодовые страницы в erlang, Отображение кириллицы в werl 
:(
    Опции темы
dlebedev
Дата 24.4.2012, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 старой верси мне достался по наследству и вообще шел вместе с дистрибутивом программы. Новую версию качал с офф.сайта.

Может кто встречал такой глюк и знает, как его победить?
PM MAIL   Вверх
k0rvin
Дата 26.4.2012, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



попробуй в bat-файле сменить кодировку с помощью chcp


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
dlebedev
Дата 12.5.2012, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.4.2012

Репутация: нет
Всего: нет



Цитата(k0rvin @  26.4.2012,  09:29 Найти цитируемый пост)
попробуй в bat-файле сменить кодировку с помощью chcp 

Не помогло. Пробовал запускать erl и werl (как я понял из исходников эрланга, есть небольшая разница между ними), но результат один и тот же. Пробовал собрать erlang из исходников, но тоже потерпел неудачу. Может потому что не сильно старался... Не знаю. Меня напрягло, что нужно ставить MS SDK 7.1, wxWidgets, MSYS и perl и компилить все это черт знает чем. Не осилил в общем. Правда в исходниках покопался и знаете что? Не нашел я там каких-то хитрых ключей для указания кодировок для erlang-машины. Был один ключ у wxWidgets (о поддержке Unicode) и все. Может плохо смотрел?
PM MAIL   Вверх
dlebedev
Дата 12.3.2013, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 24.4.2012

Репутация: нет
Всего: нет



В общем, проблема решилась написанием обертки вокруг библиотечной функции io:fwrite, которая при необходимости перекодирует кириллицу из cp1251 в utf8. Можно аналогичные обертки и вокруг других функций сделать, но мне без надобности.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума «Функциональные языки: общие вопросы»
Void
  • Пожалуйста, создавайте темы с содержательными названиями. Если у Вас вопрос по конкретному языку, укажите его в заголовке, например: «[Haskell] Как использовать монаду State».
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1062 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.