LINUX.ORG.RU

Ответ на: комментарий от unC0Rr

А как меня спасёт Data.ByteString.UTF8? У меня сложилось ощущение, что проблема именно с hGetContents, а не с функциями для работы со строками.

KblCb ★★★★★
() автор топика

> stdin

hGetContents

Почему не getContents?

anonymous
()
Ответ на: комментарий от KblCb

Прочитает строку в UTF-8, проблем не будет. Стандартные функции, которые возвращают String, бывает, косячат с кодировкой

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

То есть я таки пошёл по правильному пути. Спасибо. Вот теперь думаю распаковать ByteString в [Char] или поставить parsec для ByteString'ов.

KblCb ★★★★★
() автор топика
Ответ на: комментарий от KblCb

Зависит от того, насколько критична производительность. ByteString в UTF-8 имеет готовую функцию для конвертации в String

unC0Rr ★★★★★
()
lelf@Betty:~/hacking$ cat z.hs
import Data.List

main = putStrLn . intersperse ',' =<< getContents


lelf@Betty:~/hacking$ echo -n 'Ηελλο Мир!' | runhaskell z.hs
Η,ε,λ,λ,ο, ,М,и,р,!

lelf
()
Ответ на: комментарий от lelf

Можно проверить, например, попыткой сконвертить его в другую кодировку:

cat myfile|iconv -f=utf8 -t=cp1251

ratatosk
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.