Difference between revisions of "UTF-8"
Jump to navigation
Jump to search
(question - what about other string encodings?) |
Tomjaguarpaw (talk | contribs) (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> |