úÎH›B¼O      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN Safe-InferredOPQRSTUVWXYZ[\]^_`abcTSRQPOUVWXYZ[\]^_`abcCopyright (C) 2010- Uwe SchmidtMITUwe Schmidt (uwe@fh-wedel.de)stableportable Safe-Inferredcalls  for parsing and decoding UTF-8dedeCopyright (C) 2010 Uwe SchmidtMITUwe Schmidt (uwe@fh-wedel.de)stableportable Safe-Inferred      Safe-Inferred !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,-Copyright (C) 2010- Uwe SchmidtMITUwe Schmidt (uwe@fh-wedel.de)stableportable Safe-Inferred#fdthe table of supported output encoding schemes and the associated conversion functions from Unicode.ODecoding function where decoding errors are interleaved with decoded characters0bDecoding function with a pair containing the result string and a list of decoding errors as result10UTF-8 strings are implemented as Haskell strings22UTF-8 charachters are represented by the Char type3the type for Unicode strings4•Unicode is represented as the Char type Precondition for this is the support of Unicode character range in the compiler (e.g. ghc but not hugs)5Bconversion from Unicode strings (UString) to UTF8 encoded strings.68conversion from Unicode (Char) to a UTF8 encoded string.7&code conversion from latin1 to UnicodegDconversion from ASCII to unicode with check for legal ASCII char set+Structure of decoding function copied from .8&UCS-2 big endian to Unicode conversion9)UCS-2 little endian to Unicode conversion:7UCS-2 to UTF-8 conversion with byte order mark analysis;fUTF-8 to Unicode conversion with deletion of leading byte order mark, as described in XML standard F.1=EUTF-16 big endian to UTF-8 conversion with removal of byte order mark>HUTF-16 little endian to UTF-8 conversion with removal of byte order mark?lsubstitute all Unicode characters, that are not legal 1-byte UTF-8 XML characters by a character reference.\This function can be used to translate all text nodes and attribute values into pure ascii. see also : @@lsubstitute all Unicode characters, that are not legal latin1 UTF-8 XML characters by a character reference.\This function can be used to translate all text nodes and attribute values into ISO latin1. see also : ?h$substitute selected characters The check function returns i: whenever a character needs to substitution The function esc computes a substitute.AŸremoves all non ascii chars, may be used to transform a document into a pure ascii representation by removing all non ascii chars from tag and attibute names see also : B, ?B removes all non latin1 chars, may be used to transform a document into a pure ascii representation by removing all non ascii chars from tag and attibute names see also : A, @C2convert an Unicode into a XML character reference. see also : DD>convert an Unicode into a XML hexadecimal character reference. see also: CF?White Space (XML Standard 2.3) and end of line handling (2.11)$#x0D and #x0D#x0A are mapped to #x0Ajithe table of supported character encoding schemes and the associated conversion functions into Unicode:qG7the lookup function for selecting the decoding functionk Similar to j; but it embeds errors in the string of decoded characters.H7the lookup function for selecting the decoding functionldthe table of supported output encoding schemes and the associated conversion functions from UnicodeI7the lookup function for selecting the encoding functionK7the lookup function for selecting the encoding functionL8conversion from Unicode (Char) to a UTF8 encoded string.Mlsubstitute all Unicode characters, that are not legal 1-byte UTF-8 XML characters by a character reference.Nlsubstitute all Unicode characters, that are not legal latin1 UTF-8 XML characters by a character reference.-f./01234567mgn89:;<=>?@hABCDEoFjGkHlIJpqrKLMN!./0123456789:;<=>?@ABCDEFGHIJKLMN!4321/0.;<7:89=>65?@ABCDEGHIFJKLMN-f./01234567mgn89:;<=>?@hABCDEoFjGkHlIJpqrKLMNs      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxhiyzhxt-unicode-9.0.2.4Data.String.UTF8Data.String.UTF8DecodingData.String.EncodingNamesData.Char.IsoLatinTablesData.String.UnicodeData.Char.UTF8decodeError encodeOneencode decodeOnedecodeEmbedErrors decodeUtf8decodeUtf8IgnoreErrorsdecodeUtf8EmbedErrors isoLatin1 iso8859_1 iso8859_2 iso8859_3 iso8859_4 iso8859_5 iso8859_6 iso8859_7 iso8859_8 iso8859_9 iso8859_10 iso8859_11 iso8859_13 iso8859_14 iso8859_15 iso8859_16usAsciiucs2utf8utf16utf16beutf16le unicodeString iso_8859_2 iso_8859_3 iso_8859_4 iso_8859_5 iso_8859_6 iso_8859_7 iso_8859_8 iso_8859_9 iso_8859_10 iso_8859_11 iso_8859_13 iso_8859_14 iso_8859_15 iso_8859_16DecodingFctEmbedErrorsUStringWithErrors DecodingFct UTF8StringUTF8CharUStringUnicode unicodeToUtf8unicodeCharToUtf8latin1ToUnicodeucs2BigEndianToUnicodeucs2LittleEndianToUnicode ucs2ToUnicode utf8ToUnicodeutf8ToUnicodeEmbedErrorsutf16beToUnicodeutf16leToUnicodeunicodeToXmlEntityunicodeToLatin1unicodeRemoveNoneAsciiunicodeRemoveNoneLatin1 intToCharRefintToCharRefHexintToHexString normalizeNLgetDecodingFctgetDecodingFctEmbedErrorsgetOutputEncodingFct guessEncodinggetOutputEncodingFct'unicodeCharToUtf8'unicodeCharToXmlEntity'unicodeCharToLatin1' SurrogateValueOutOfBounds NonShortest TruncatedInvalidLaterByteInvalidFirstByteencodeOne_onebyteencodeOne_twobyteencodeOne_threebyteencodeOne_fourbytefirst_bits_not_10decodeOne_onebytecpToChardecodeOne_twobytedecodeOne_threebytethreebyte_truncateddecodeOne_fourbytefourbyte_truncatedswappartitionEithertoMaybestringToByteStringtoErrStr StringFct decodeAsciiescapeghc-prim GHC.TypesTrue decodingTabledecodingTableEmbedErrorsoutputEncodingTablelatinToUnicodedecodeAsciiEmbedErrorsfourBitsToCharoutputEncodingTable'