Re[2]: [Haskell] Как работать с кодировками?
От: Tonal- Россия www.promsoft.ru
Дата: 17.01.09 16:36
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:
BZ>1. исходники в ghc записываются в utf-8
BZ>2. строки хранятся в unicode кодировке (4 байта на символ)
BZ>3. файлы читаются байт-в-байт. поэтому значение 140, к примеру, превратится в unicode символ с кодом 140. твоя задача — превратить 140 в число, соответствующее нужной русской букве
BZ>для этого в винде (если у тебя русская локаль) нужно сделать следующее:
А почему не использовать stringToUnicode из System.Win32.NLS?
ansi2unicode = stringToUnicode cP_ACP
oem2unicode = stringToUnicode cP_OEM


Ну и заставить работать регулярки с русскими символами таки не получилось — ничего не находит...
Простейший тест:
import Text.Regex.PCRE

re_test :: String -> String -> Bool
re_test re str = str =~ re

main = print $ re_test "^п.*" "привет"

Выдаёт после компиляции:
uni_regs.exe: user error (Text.Regex.PCRE.String died: (1,"nothing to repeat"))

Похоже не умеет Text.Regex.PCRE с национальными символами работать...
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.