83 lines
3.0 KiB
Haskell
83 lines
3.0 KiB
Haskell
module Data.Encoding
|
|
(Encoding(..)
|
|
,EncodingException(..)
|
|
,DecodingException(..)
|
|
,DynEncoding()
|
|
,encodingFromString
|
|
)
|
|
where
|
|
|
|
import Data.Encoding.Base
|
|
import Data.Encoding.ASCII
|
|
import Data.Encoding.UTF8
|
|
import Data.Encoding.UTF16
|
|
import Data.Encoding.UTF32
|
|
import Data.Encoding.ISO88591
|
|
import Data.Encoding.ISO88592
|
|
import Data.Encoding.ISO88593
|
|
import Data.Encoding.ISO88594
|
|
import Data.Encoding.ISO88595
|
|
import Data.Encoding.ISO88596
|
|
import Data.Encoding.ISO88597
|
|
import Data.Encoding.ISO88598
|
|
import Data.Encoding.ISO88599
|
|
import Data.Encoding.ISO885910
|
|
import Data.Encoding.ISO885911
|
|
import Data.Encoding.ISO885913
|
|
import Data.Encoding.ISO885914
|
|
import Data.Encoding.ISO885915
|
|
import Data.Encoding.ISO885916
|
|
import Data.Encoding.CP1250
|
|
import Data.Encoding.CP1251
|
|
import Data.Encoding.CP1252
|
|
import Data.Encoding.CP1253
|
|
import Data.Encoding.CP1254
|
|
import Data.Encoding.CP1255
|
|
import Data.Encoding.CP1256
|
|
import Data.Encoding.CP1257
|
|
import Data.Encoding.CP1258
|
|
import Data.Encoding.KOI8R
|
|
|
|
-- | An untyped encoding. Used in 'System.IO.Encoding.getSystemEncoding'.
|
|
data DynEncoding = forall t. Encoding t => DynEncoding t
|
|
|
|
instance Encoding DynEncoding where
|
|
encode (DynEncoding enc) = encode enc
|
|
encodeLazy (DynEncoding enc) = encodeLazy enc
|
|
encodable (DynEncoding enc) = encodable enc
|
|
decode (DynEncoding enc) = decode enc
|
|
decodeLazy (DynEncoding enc) = decodeLazy enc
|
|
decodable (DynEncoding enc) = decodable enc
|
|
|
|
encodingFromString :: String -> DynEncoding
|
|
encodingFromString "ASCII" = DynEncoding ASCII
|
|
encodingFromString "UTF-8" = DynEncoding UTF8
|
|
encodingFromString "UTF-16" = DynEncoding UTF16
|
|
encodingFromString "UTF-32" = DynEncoding UTF32
|
|
encodingFromString "KOI8-R" = DynEncoding KOI8R
|
|
encodingFromString "ISO-8859-1" = DynEncoding ISO88591
|
|
encodingFromString "ISO-8859-2" = DynEncoding ISO88592
|
|
encodingFromString "ISO-8859-3" = DynEncoding ISO88593
|
|
encodingFromString "ISO-8859-4" = DynEncoding ISO88594
|
|
encodingFromString "ISO-8859-5" = DynEncoding ISO88595
|
|
encodingFromString "ISO-8859-6" = DynEncoding ISO88596
|
|
encodingFromString "ISO-8859-7" = DynEncoding ISO88597
|
|
encodingFromString "ISO-8859-8" = DynEncoding ISO88598
|
|
encodingFromString "ISO-8859-9" = DynEncoding ISO88599
|
|
encodingFromString "ISO-8859-10"= DynEncoding ISO885910
|
|
encodingFromString "ISO-8859-11"= DynEncoding ISO885911
|
|
encodingFromString "ISO-8859-13"= DynEncoding ISO885913
|
|
encodingFromString "ISO-8859-14"= DynEncoding ISO885914
|
|
encodingFromString "ISO-8859-15"= DynEncoding ISO885915
|
|
encodingFromString "ISO-8859-16"= DynEncoding ISO885916
|
|
encodingFromString "CP1250" = DynEncoding CP1250
|
|
encodingFromString "CP1251" = DynEncoding CP1251
|
|
encodingFromString "CP1252" = DynEncoding CP1252
|
|
encodingFromString "CP1253" = DynEncoding CP1253
|
|
encodingFromString "CP1254" = DynEncoding CP1254
|
|
encodingFromString "CP1255" = DynEncoding CP1255
|
|
encodingFromString "CP1256" = DynEncoding CP1256
|
|
encodingFromString "CP1257" = DynEncoding CP1257
|
|
encodingFromString "CP1258" = DynEncoding CP1258
|
|
encodingFromString str = error $ "Unknown encoding: "++show str
|