
On Fri, Mar 9, 2012 at 9:01 AM, Emacs The Viking
I am almost to the point of exasperation on trying to know when and why and how to convert between String, ByteString, ByteString.Laz, Char8 etc. For heavens sake how many bloody string types can you need? LOL
Here is a really important point I'd like to make: The 'sha1' function operates on _binary_data_. If you have a 'String' or a 'Text' value, you have to make a _choice_ how you wish to represent your textual data as binary data. That's why their are multiple types - because different situations can call for different choices. The Data.ByteString.Char8 module makes one choice - it truncates all Unicode code-points above 255 to 255. In many circumstances, this is not the right choice. But it's not always the wrong choice either. A great choice is UTF-8 - available either in the module Data.Text.Encoding (for 'Text' values) or in the utf8-string package for String values (using the functions 'fromString' and 'toString'). Antoine http://hackage.haskell.org/packages/archive/text/0.11.1.13/doc/html/Data-Tex... http://hackage.haskell.org/packages/archive/utf8-string/0.3.7/doc/html/Data-...