Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Функциональные языки: общие вопросы > [Haskell] кириллица |
Автор: Artemios 18.1.2007, 01:05 | ||
Haskell и кириллица -- есть ли возможность как-нибудь подружить, кроме как таким способом:
Когда пытаюсь просто в кавычках записать строку с кириллицей -- компилятор (ghc) ругается на лексическую ошибку. |
Автор: DrDred 18.1.2007, 10:35 |
Счас проверил ghc 6.4.2 - если файл сохранен в UTF-8 то все нормально... правда т.к. консоль не юникодная, то пользы от этого маловато ![]() |
Автор: Artemios 18.1.2007, 13:33 | ||
Странно... Вся система utf-8, включая и консоль. SuSE Linux 10.1 ghc-6.4.2 Что получается:
Добавлено @ 13:38 P.S. пакет с ghc качал с PACKMAN-а, может у них он собран без поддержки юникода? |
Автор: DrDred 18.1.2007, 14:22 |
а cat точно создает utf-8 файл? Про Linux сказать ничего не могу, т.к. тестировал под Виндой... |
Автор: DrDred 18.1.2007, 15:36 |
Черт, извиняюсь похоже прогнал с utf-8 ![]() А вот с cp1251 все хорошо... Брал дистрибутив с haskell.org, вроде ничего не докручивал... |
Автор: Artemios 18.1.2007, 16:59 | ||
Опа... Я похоже тоже прогнал: и наверно тот же utf-8 в Винде компилировал... Сейчас под Linux-ом попробовал koi8-r -- все замечательно собирается и запускается ![]()
Значит, вопрос не в кириллице, а в поддержке юникода. |
Автор: Artemios 23.1.2007, 16:14 | ||
Вообще, вопрос темы возник по следующему поводу: начал баловаться с построение ГУИ с использованием библиотеки gtk2hs Тут выяснилось, что строки с не-ascii символами GTK кушает в юникоде. Решил: если гора не идет к Магомеду -- Магомед идет к горе. Написал скриптик (если кому нужен -- присоединяю к сообщению), который разбирает программу на Haskell и заменяет строки, содержащие не-ascii символы, на представление вида (map chr [список hex-значений символов в юникоде]). Теперь могу писать в любой кодировке и использовать любые строки, а после обработки скриптом все замечательно компилируется и работает хоть в Линуксе, хоть в Винде. Скрипт писал на Python -- соответственно понимает все кодировки, что понимает питон (а это если и не все, то большинство ныне используемых кодировок). В большинстве дистрибутивов линукса питон установлен по умолчанию, под виндусом пробовал с установленным питоном, но при желании можно собрать и независимый от питона экзешник. Ниже привожу пример использования (скрипт назвал notascii2haskell ![]()
и после выполнения последней строчки имею окошко с кнопкой: ![]() Предложения по дополнению/улучшению принимаются ![]() |
Автор: Laughedelic 11.10.2007, 20:49 |
у меня такая же проблема с кириллицей в Хаскелле. кроме этого скрипта никто не придумал, других решений? |