[Haskell-cafe] UTF-8 in Haskell.

Magicloud Magiclouds magicloud.magiclouds at gmail.com
Thu Dec 23 06:29:49 CET 2010


Hi,
  Recently, I am reading ssh hackage
(http://hackage.haskell.org/package/ssh). When at the part of deal
with string, I got confused. I am not sure if this is a bug for the
hackage, or I am just misunderstanding.
  An ascii char takes a Word8. So this works (LBS stands for
Data.ByteString.Lazy):
toLBS :: String -> LBS.ByteString
toLBS = LBS.pack . map (fromIntegral . fromEnum)
  But a UTF-8 char takes a Int (Word32). Then I think the above code
would break the data, right?
  If so, OK, then I think I could make a packInt which turns an Int
into 4 Word8 first. Thus under all situation (ascii, UTF-8, or even
UTF-32), my program always send 4 bytes through the network. Is that
OK?
-- 
竹密岂妨流水过
山高哪阻野云飞



More information about the Haskell-Cafe mailing list