Difference between revisions of "UTF-8"

From HaskellWiki
Jump to: navigation, search
(question - what about other string encodings?)
(Deleting page that hasn't been updated for over 10 years)
Line 1: Line 1:
[[Category:Code]]
 
 
The simplest solution seems to be to use the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/utf8-string utf8-string package] from Galois. It
 
provides a drop-in replacement for System.IO
 
 
''What about other string encodings?''
 
 
== Example ==
 
If we use a function from System.IO.UTF8, we should also hide the equivalent one from the Prelude. (Alternatively, we could import the UTF8 module qualified)
 
 
<haskell>
 
> import System.IO.UTF8
 
> import Prelude hiding (readFile, writeFile)
 
> import System.Environment (getArgs)
 
</haskell>
 
 
The readFile and writeFile functions are the same as before...
 
 
<haskell>
 
> main :: IO ()
 
> main =
 
> do args <- getArgs
 
> mapM_ reverseUTF8File args
 
 
> reverseUTF8File :: FilePath -> IO ()
 
> reverseUTF8File f =
 
> do c <- readFile f
 
> writeFile (f ++ ".rev") $ reverseLines c
 
> where
 
> reverseLines = unlines . map reverse . lines
 
</haskell>
 

Revision as of 15:04, 6 February 2021