Haskell:将Char转换为Word8的函数

时间:2014-09-08 19:44:31

标签: haskell

我试图找到一个将Char转换为Word8的函数,以及另一个将其转换回来的函数。我看过Hoogle并且没有Char类型的功能 - > Word8。我想这样做是因为Word8有一个Num类的实例,我可以为它们添加数字以将它们更改为另一个数字。例如,我的函数看起来像:

shift :: Char -> Int -> Char
shift c x = toChar $ (toWord8 c) + x

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

您可以使用fromEnumtoEnum代替Int。这还有额外的好处,也支持Unicode。

> toEnum (fromEnum 'a' + 3) :: Char
'd'

答案 1 :(得分:2)

我使用FP Complete的Hoogle找到了这些:http://haddocks.fpcomplete.com/fp/7.7/20131212-1/utf8-string/Codec-Binary-UTF8-String.html#v:encodeChar

Char不一定只包含一个字节,因此您描述的转换可能会丢失信息。这些功能会改变吗?