Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51dfd77f3c | ||
|
|
2e3e61a2b4 | ||
|
|
52aabc47cd | ||
|
|
8925f398af | ||
|
|
7adcda8547 | ||
|
|
59b81ad775 | ||
|
|
8727ac25a5 | ||
|
|
6284c1a677 | ||
|
|
f1a2889bfe | ||
|
|
7c07f48a45 | ||
|
|
4be65c2f13 | ||
|
|
63e17e9a22 | ||
|
|
de78ca5f34 | ||
|
|
2be6331521 | ||
|
|
2e910834dc | ||
|
|
e5e64a794f | ||
|
|
f679a9eb63 | ||
|
|
699abee92b | ||
|
|
4e53752d41 | ||
|
|
80e12d02f9 | ||
|
|
e6a388b038 | ||
|
|
ccdcf9c392 | ||
|
|
f565a7e82e | ||
|
|
f81e1808ff | ||
|
|
00f914ebde | ||
|
|
91f119bbfb | ||
|
|
da883601cb | ||
|
|
8b1f45a6ec | ||
|
|
25d4551635 | ||
|
|
2a0fc9d7b8 | ||
|
|
d604ac7763 | ||
|
|
9da33cd371 | ||
|
|
7d2f55ce07 | ||
|
|
d8f94105ee | ||
|
|
789bc64b4c | ||
|
|
93da077efb | ||
|
|
1c3ac37dfb | ||
|
|
048bf2ec0c | ||
|
|
5c497e5dde | ||
|
|
3f8c3bbb26 | ||
|
|
e170c32ac3 | ||
|
|
c06d483ef6 | ||
|
|
201eccc546 | ||
|
|
ffb37b3e2c | ||
|
|
a95a1e298b | ||
|
|
44f3f083aa | ||
|
|
ce0aa549b7 | ||
|
|
23ae31d2a1 | ||
|
|
9a7f52ab7a | ||
|
|
a3a24776a3 | ||
|
|
fef1fbd22f | ||
|
|
f3022891df | ||
|
|
9e6b9a4cf0 | ||
|
|
58dd5e4a58 | ||
|
|
adcf21c753 | ||
|
|
87dbb737ed | ||
|
|
7b887abcb1 | ||
|
|
5b514a206a | ||
|
|
c2ce913d3f | ||
|
|
7e4b35de61 | ||
|
|
7b5de2715c | ||
|
|
871b207ab2 | ||
|
|
44d37e6bea | ||
|
|
f7b6c800ef | ||
|
|
85394f42d2 | ||
|
|
b12649a071 | ||
|
|
56867f5768 | ||
|
|
98ece426d9 | ||
|
|
94b3b3f7d9 | ||
|
|
2a2630625c | ||
|
|
e0231b1213 | ||
|
|
6f3c147f8d | ||
|
|
7f1a89a45a | ||
|
|
10730b3131 | ||
|
|
b000cd4e0a | ||
|
|
037505e3d6 | ||
|
|
414adf4e7d | ||
|
|
dc6c1f142d | ||
|
|
73eefc2838 | ||
|
|
39af34b0a3 | ||
|
|
6101ee16ae | ||
|
|
1ad8755a80 | ||
|
|
c4a1e63869 | ||
|
|
4b8a0341ac | ||
|
|
8b5975bde5 | ||
|
|
733e39c9c5 | ||
|
|
3fe8b56539 | ||
|
|
46d5eb8efd | ||
|
|
6b57fd01c2 | ||
|
|
fb5111d7dc | ||
|
|
7f65298d3a | ||
|
|
693010654c | ||
|
|
26924f12a5 | ||
|
|
53d723d61e | ||
|
|
3270e03da1 | ||
|
|
6eb2d51ee2 | ||
|
|
3b3f042529 | ||
|
|
c2899caa35 | ||
|
|
d2e7eeddd1 | ||
|
|
ad5c9e1d59 | ||
|
|
0608a57c6b | ||
|
|
0b18661553 | ||
|
|
d12097c7a1 | ||
|
|
7b2af16c03 | ||
|
|
5528bf1a55 | ||
|
|
1543e75f50 | ||
|
|
b95bfe9be4 | ||
|
|
0398f66695 | ||
|
|
9344038d33 | ||
|
|
d83074fa18 | ||
|
|
9e94c56aa0 |
22
.gitignore
vendored
Normal file
22
.gitignore
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
### Haskell ###
|
||||
dist
|
||||
dist-*
|
||||
cabal-dev
|
||||
*.o
|
||||
*.hi
|
||||
*.chi
|
||||
*.chs.h
|
||||
*.dyn_o
|
||||
*.dyn_hi
|
||||
.hpc
|
||||
.hsenv
|
||||
.cabal-sandbox/
|
||||
cabal.sandbox.config
|
||||
*.prof
|
||||
*.aux
|
||||
*.hp
|
||||
*.eventlog
|
||||
.stack-work/
|
||||
cabal.project.local
|
||||
.HTF/
|
||||
|
||||
112
CHANGELOG
Normal file
112
CHANGELOG
Normal file
@ -0,0 +1,112 @@
|
||||
Changes from 0.8 to 0.8.2
|
||||
-------------------------
|
||||
|
||||
* Deprecated support for very old GHCs
|
||||
* Updated cabal file to differentiate between build dependencies and setup dependencies
|
||||
* Add upper and lower bounds to build dependencies
|
||||
* Stack compatibility
|
||||
|
||||
Changes from 0.8 to 0.8.1
|
||||
-------------------------
|
||||
|
||||
* Added the ShiftJIS and CP932 encodings
|
||||
|
||||
Changes from 0.7.0.2 to 0.8
|
||||
---------------------------
|
||||
|
||||
* GHC-7.10/AMP compatibility
|
||||
|
||||
Changes from 0.7.0.1 to 0.7.0.2
|
||||
-------------------------------
|
||||
|
||||
* Flesh out the MacOSRoman encoding, which was missing 33 code points
|
||||
|
||||
Changes from 0.7 to 0.7.0.1
|
||||
---------------------------
|
||||
|
||||
* GHC-7.8 compatibility
|
||||
|
||||
Changes from 0.6.7 to 0.7
|
||||
-------------------------
|
||||
|
||||
* the type of ByteSource's fetchAhead method changed to accomodate updates to the binary package
|
||||
|
||||
Changes from 0.6.5 to 0.6.7
|
||||
---------------------------
|
||||
|
||||
* Skipped version 0.6.6 due to rogue upload on Hackage
|
||||
* GHC-7 and HaXml-1.22 compatibility
|
||||
* add -systemEncoding flag for Windows builds
|
||||
|
||||
Changes from 0.6.4 to 0.6.5
|
||||
---------------------------
|
||||
|
||||
* Make package work with >=base-4.3.0.0 and mtl-2
|
||||
|
||||
Changes from 0.6.3 to 0.6.4
|
||||
---------------------------
|
||||
|
||||
* Throw an error when encoding non-ascii chars with ascii
|
||||
* Fix compilation with mtl-2
|
||||
|
||||
Changes from 0.6.2 to 0.6.3
|
||||
---------------------------
|
||||
|
||||
* Use new QuickCheck version 2 for tests
|
||||
* Fixed UTF16 encoding range
|
||||
|
||||
Changes from 0.6.0 to 0.6.1
|
||||
---------------------------
|
||||
|
||||
* Support for many MSDOS codepages
|
||||
* Show instance for DynEncoding
|
||||
* More IO functions
|
||||
* Fancy translation tables for the documentation of auto-generated modules
|
||||
|
||||
Changes from 0.5.2 to 0.6.0
|
||||
---------------------------
|
||||
|
||||
* Moved from TemplateHaskell to a custom pre-processor for code-generation.
|
||||
This is necessary because:
|
||||
- TemplateHaskell is really slow for large data structures
|
||||
- TemplateHaskell doesn't yet support the MagicHash extension that is useful for the library
|
||||
* Use efficient, static data structures for encoding/decoding
|
||||
* Fixed bug in UTF-8 that could call 'chr' with bad arguments
|
||||
|
||||
Changes from 0.5 to 0.5.2
|
||||
-------------------------
|
||||
|
||||
* Export function encodingFromStringExplicit
|
||||
|
||||
Changes from 0.4 to 0.5
|
||||
-----------------------
|
||||
|
||||
* Complete rewrite of the Encoding class to allow for
|
||||
- On-the-fly changing of the encoding while en-/decoding
|
||||
- Ability to en-/decode from/to any data structure
|
||||
* A general module to help specify encodings based on ISO 2022
|
||||
* New encodings:
|
||||
- JIS X 0201
|
||||
- JIS X 0208
|
||||
- ISO 2022-JP
|
||||
* More test cases
|
||||
|
||||
Changes from 0.3 to 0.4
|
||||
-----------------------
|
||||
|
||||
* A new, strict UTF-8 decoder
|
||||
* Minor bugs fixed in UTF-16 and BootString
|
||||
* Test cases for UTF-8, UTF-16 and BootString
|
||||
* Added KOI8U encoding
|
||||
|
||||
Changes from 0.2 to 0.3
|
||||
-----------------------
|
||||
|
||||
* Converted to new cabal interface
|
||||
* Support for GHC 6.8
|
||||
* Support for new bytestring interface
|
||||
|
||||
Changes from 0.1 to 0.2
|
||||
-----------------------
|
||||
|
||||
* Implemented GB18030 encoding
|
||||
15
Data/Array/Static.hs
Normal file
15
Data/Array/Static.hs
Normal file
@ -0,0 +1,15 @@
|
||||
{-# LANGUAGE MagicHash,BangPatterns #-}
|
||||
module Data.Array.Static where
|
||||
|
||||
import Data.Static
|
||||
import GHC.Exts
|
||||
import Data.Ix
|
||||
|
||||
data StaticArray i e = StaticArray i i Addr#
|
||||
|
||||
bounds :: Ix i => StaticArray i e -> (i,i)
|
||||
bounds (StaticArray s e _) = (s,e)
|
||||
|
||||
(!) :: (StaticElement e,Ix i) => StaticArray i e -> i -> e
|
||||
(!) (StaticArray s e addr) i = let !(I# ri) = index (s,e) i
|
||||
in extract addr ri
|
||||
12
Data/Array/Static/Builder.hs
Normal file
12
Data/Array/Static/Builder.hs
Normal file
@ -0,0 +1,12 @@
|
||||
{-# LANGUAGE MagicHash #-}
|
||||
module Data.Array.Static.Builder where
|
||||
|
||||
import Data.Static
|
||||
|
||||
buildStaticArray :: (StaticElement e,Show i) => (i,i) -> [e] -> String
|
||||
buildStaticArray (s,e) els = "StaticArray ("++show s++") ("++show e++") \""
|
||||
++concat (map (\w -> '\\':show w) (concat (map gen els)))
|
||||
++"\"#"
|
||||
|
||||
buildStaticArray' :: (StaticElement e) => [e] -> String
|
||||
buildStaticArray' els = buildStaticArray (0,length els-1) els
|
||||
73
Data/CharMap.hs
Normal file
73
Data/CharMap.hs
Normal file
@ -0,0 +1,73 @@
|
||||
module Data.CharMap where
|
||||
|
||||
import Data.Map.Static
|
||||
import Data.Encoding.ByteSink
|
||||
import Data.Encoding.Exception
|
||||
|
||||
import Control.Throws
|
||||
import Data.Word
|
||||
import Data.Char
|
||||
import Prelude hiding (lookup)
|
||||
|
||||
data CharMap
|
||||
= Node !Char !CharMap !CharMap
|
||||
| DeadEnd
|
||||
| LeafRange1 !Int !Word8
|
||||
| LeafRange2 !Int !Word8 !Word8 !Word8
|
||||
| LeafRange3 !Int !Word8 !Word8 !Word8 !Word8 !Word8
|
||||
| LeafRange4 !Int !Word8 !Word8 !Word8 !Word8 !Word8 !Word8 !Word8
|
||||
| LeafMap1 (StaticMap Char Word8)
|
||||
| LeafMap2 (StaticMap Char Word16)
|
||||
| LeafMap4 (StaticMap Char Word32)
|
||||
|
||||
mapEncode :: ByteSink m => Char -> CharMap -> m ()
|
||||
mapEncode ch (Node rch l r)
|
||||
| ch < rch = mapEncode ch l
|
||||
| otherwise = mapEncode ch r
|
||||
mapEncode ch DeadEnd = throwException (HasNoRepresentation ch)
|
||||
mapEncode ch (LeafRange1 bch st)
|
||||
= pushWord8 $ st + (fromIntegral ((ord ch) - bch))
|
||||
mapEncode ch (LeafRange2 bch min1 min2 r2)
|
||||
= let v = (ord ch) - bch
|
||||
(w1,w2) = v `divMod` (fromIntegral r2)
|
||||
in do
|
||||
pushWord8 (fromIntegral w1 + min1)
|
||||
pushWord8 (fromIntegral w2 + min2)
|
||||
mapEncode ch (LeafRange3 bch min1 min2 r2 min3 r3)
|
||||
= let v = (ord ch) - bch
|
||||
(v1,w3) = v `divMod` (fromIntegral r3)
|
||||
(w1,w2) = v1 `divMod` (fromIntegral r2)
|
||||
in do
|
||||
pushWord8 (fromIntegral w1 + min1)
|
||||
pushWord8 (fromIntegral w2 + min2)
|
||||
pushWord8 (fromIntegral w3 + min3)
|
||||
mapEncode ch (LeafRange4 bch min1 min2 r2 min3 r3 min4 r4)
|
||||
= let v = (ord ch) - bch
|
||||
(v1,w4) = v `divMod` (fromIntegral r4)
|
||||
(v2,w3) = v1 `divMod` (fromIntegral r3)
|
||||
(w1,w2) = v2 `divMod` (fromIntegral r2)
|
||||
in do
|
||||
pushWord8 (fromIntegral w1 + min1)
|
||||
pushWord8 (fromIntegral w2 + min2)
|
||||
pushWord8 (fromIntegral w3 + min3)
|
||||
pushWord8 (fromIntegral w4 + min4)
|
||||
mapEncode ch (LeafMap1 mp) = case lookup ch mp of
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
Just v -> pushWord8 v
|
||||
mapEncode ch (LeafMap2 mp) = case lookup ch mp of
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
Just v -> pushWord16be v
|
||||
mapEncode ch (LeafMap4 mp) = case lookup ch mp of
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
Just v -> pushWord32be v
|
||||
|
||||
|
||||
mapMember :: Char -> CharMap -> Bool
|
||||
mapMember c (Node rc l r)
|
||||
| c < rc = mapMember c l
|
||||
| otherwise = mapMember c r
|
||||
mapMember c DeadEnd = False
|
||||
mapMember c (LeafMap1 mp) = member c mp
|
||||
mapMember c (LeafMap2 mp) = member c mp
|
||||
mapMember c (LeafMap4 mp) = member c mp
|
||||
mapMember c _ = True
|
||||
64
Data/CharMap/Builder.hs
Normal file
64
Data/CharMap/Builder.hs
Normal file
@ -0,0 +1,64 @@
|
||||
module Data.CharMap.Builder where
|
||||
|
||||
import Data.Map.Static.Builder
|
||||
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
import Data.Char
|
||||
import Data.Bits
|
||||
import Data.Word
|
||||
|
||||
data BuildingBlock
|
||||
= SingleMapping Char [Word8]
|
||||
| RangeMapping Char Char Int [(Word8,Word8)]
|
||||
|
||||
charRange :: BuildingBlock -> (Char,Char)
|
||||
charRange (SingleMapping c _) = (c,c)
|
||||
charRange (RangeMapping s e _ _) = (s,e)
|
||||
|
||||
mappingLength :: BuildingBlock -> Int
|
||||
mappingLength (SingleMapping _ w) = length w
|
||||
mappingLength (RangeMapping _ _ _ ws) = length ws
|
||||
|
||||
isRange :: BuildingBlock -> Bool
|
||||
isRange (SingleMapping _ _) = False
|
||||
isRange (RangeMapping _ _ _ _) = True
|
||||
|
||||
buildCharMap :: [BuildingBlock] -> String
|
||||
buildCharMap lst = let slst = sortBy (comparing (fst.charRange)) lst
|
||||
grps = groupBy (\x y -> (not (isRange x || isRange y))
|
||||
&& mappingLength x == mappingLength y
|
||||
) slst
|
||||
|
||||
split' xs = splitAt (length xs `div` 2) xs
|
||||
|
||||
build' [] _ _ = "DeadEnd"
|
||||
build' [[RangeMapping st end off (x:xs)]] bl br
|
||||
= let e1 = if bl < st
|
||||
then "Node ("++show st++") DeadEnd ("++e2++")"
|
||||
else e2
|
||||
e2 = if br>end
|
||||
then "Node ("++show end++") ("++e3++") DeadEnd"
|
||||
else e3
|
||||
e3 = "LeafRange"++show (length xs+1)++" ("++show (ord st - off)++") "
|
||||
++show (fst x)++concat (map (\(w,r) -> " "++show w++" "++show r) xs)
|
||||
in e1
|
||||
build' [mps@((SingleMapping _ w):_)] bl br
|
||||
= "LeafMap"++show (length w)++" ("
|
||||
++(case length w of
|
||||
1 -> buildStaticMap (map (\(SingleMapping c [w]) -> (c,w)) mps)
|
||||
2 -> buildStaticMap $ map (\(SingleMapping c [w1,w2])
|
||||
-> (c,((fromIntegral w1) `shiftL` 8) .|. (fromIntegral w2)::Word16)
|
||||
) mps
|
||||
4 -> buildStaticMap $ map (\(SingleMapping c [w1,w2,w3,w4])
|
||||
-> (c,((fromIntegral w1) `shiftL` 24)
|
||||
.|. ((fromIntegral w2) `shiftL` 16)
|
||||
.|. ((fromIntegral w3) `shiftL` 8)
|
||||
.|. (fromIntegral w4)::Word32)
|
||||
) mps)++")"
|
||||
build' mps bl br = let (l,r@((spl:_):_)) = split' mps
|
||||
(el,_) = charRange spl
|
||||
in "Node ("++show el++") ("++build' l bl (pred el)++") ("++
|
||||
build' r el br++")"
|
||||
|
||||
in build' grps minBound maxBound
|
||||
@ -1,4 +1,4 @@
|
||||
{-# LANGUAGE FlexibleContexts,ExistentialQuantification #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
module Data.Encoding
|
||||
(module Data.Encoding.Exception
|
||||
,module Data.Encoding.ByteSource
|
||||
@ -19,6 +19,7 @@ module Data.Encoding
|
||||
,decodeStrictByteString
|
||||
,decodeStrictByteStringExplicit
|
||||
,encodingFromString
|
||||
,encodingFromStringExplicit
|
||||
)
|
||||
where
|
||||
|
||||
@ -71,17 +72,31 @@ import Data.Encoding.CP1258
|
||||
import Data.Encoding.KOI8R
|
||||
import Data.Encoding.KOI8U
|
||||
import Data.Encoding.GB18030
|
||||
import Data.Encoding.MacOSRoman
|
||||
import Data.Encoding.JISX0201
|
||||
import Data.Encoding.JISX0208
|
||||
import Data.Encoding.ISO2022JP
|
||||
import Data.Encoding.ShiftJIS
|
||||
import Data.Encoding.CP437
|
||||
import Data.Encoding.CP737
|
||||
import Data.Encoding.CP775
|
||||
import Data.Encoding.CP850
|
||||
import Data.Encoding.CP852
|
||||
import Data.Encoding.CP855
|
||||
import Data.Encoding.CP857
|
||||
import Data.Encoding.CP860
|
||||
import Data.Encoding.CP861
|
||||
import Data.Encoding.CP862
|
||||
import Data.Encoding.CP863
|
||||
import Data.Encoding.CP864
|
||||
import Data.Encoding.CP865
|
||||
import Data.Encoding.CP866
|
||||
import Data.Encoding.CP869
|
||||
import Data.Encoding.CP874
|
||||
import Data.Encoding.CP932
|
||||
import Data.Char
|
||||
import Text.Regex
|
||||
|
||||
data DynEncoding = forall enc. Encoding enc => DynEncoding enc
|
||||
|
||||
instance Encoding DynEncoding where
|
||||
decodeChar (DynEncoding e) = decodeChar e
|
||||
encodeChar (DynEncoding e) = encodeChar e
|
||||
decode (DynEncoding e) = decode e
|
||||
encode (DynEncoding e) = encode e
|
||||
|
||||
recode :: (Encoding enc1,Encoding enc2,ByteSource m,ByteSink m) => enc1 -> enc2 -> m ()
|
||||
recode e1 e2 = untilM_ sourceEmpty (decodeChar e1 >>= encodeChar e2)
|
||||
|
||||
@ -129,8 +144,8 @@ decodeStrictByteStringExplicit :: Encoding enc => enc -> BS.ByteString -> Either
|
||||
decodeStrictByteStringExplicit e str = evalStateT (decode e) str
|
||||
|
||||
-- | Like 'encodingFromString' but returns 'Nothing' instead of throwing an error
|
||||
encodingFromStringMaybe :: String -> Maybe DynEncoding
|
||||
encodingFromStringMaybe codeName = case (normalizeEncoding codeName) of
|
||||
encodingFromStringExplicit :: String -> Maybe DynEncoding
|
||||
encodingFromStringExplicit codeName = case (normalizeEncoding codeName) of
|
||||
-- ASCII
|
||||
"ascii" -> Just $ DynEncoding ASCII
|
||||
"646" -> Just $ DynEncoding ASCII
|
||||
@ -306,6 +321,35 @@ encodingFromStringMaybe codeName = case (normalizeEncoding codeName) of
|
||||
-- GB18030
|
||||
"gb18030" -> Just $ DynEncoding GB18030
|
||||
"gb18030_2000" -> Just $ DynEncoding GB18030
|
||||
-- MacOSRoman
|
||||
"macintosh" -> Just $ DynEncoding MacOSRoman
|
||||
-- JIS X 0201
|
||||
"jis_x_0201" -> Just $ DynEncoding JISX0201
|
||||
-- JIS X 0208
|
||||
"jis_x_0208" -> Just $ DynEncoding JISX0208
|
||||
-- ISO 2022-JP
|
||||
"iso_2022_jp" -> Just $ DynEncoding ISO2022JP
|
||||
-- Shift JIS
|
||||
"shift_jis" -> Just $ DynEncoding ShiftJIS
|
||||
"sjis" -> Just $ DynEncoding ShiftJIS
|
||||
-- MSDOS codepages
|
||||
"cp437" -> Just $ DynEncoding CP437
|
||||
"cp737" -> Just $ DynEncoding CP737
|
||||
"cp775" -> Just $ DynEncoding CP775
|
||||
"cp850" -> Just $ DynEncoding CP850
|
||||
"cp852" -> Just $ DynEncoding CP852
|
||||
"cp855" -> Just $ DynEncoding CP855
|
||||
"cp857" -> Just $ DynEncoding CP857
|
||||
"cp860" -> Just $ DynEncoding CP860
|
||||
"cp861" -> Just $ DynEncoding CP861
|
||||
"cp862" -> Just $ DynEncoding CP862
|
||||
"cp863" -> Just $ DynEncoding CP863
|
||||
"cp864" -> Just $ DynEncoding CP864
|
||||
"cp865" -> Just $ DynEncoding CP865
|
||||
"cp866" -> Just $ DynEncoding CP866
|
||||
"cp869" -> Just $ DynEncoding CP869
|
||||
"cp874" -> Just $ DynEncoding CP874
|
||||
"cp932" -> Just $ DynEncoding CP932
|
||||
-- defaults to nothing
|
||||
_ -> Nothing
|
||||
where
|
||||
@ -317,4 +361,4 @@ encodingFromString :: String -> DynEncoding
|
||||
encodingFromString str = maybe
|
||||
(error $ "Data.Encoding.encodingFromString: Unknown encoding: "++show str)
|
||||
id
|
||||
(encodingFromStringMaybe str)
|
||||
(encodingFromStringExplicit str)
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
{-# LANGUAGE DeriveDataTypeable #-}
|
||||
module Data.Encoding.ASCII where
|
||||
|
||||
import Control.Throws
|
||||
import Data.Char
|
||||
import Data.Encoding.Base
|
||||
import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ByteSink
|
||||
import Data.Encoding.Exception
|
||||
import Data.Typeable
|
||||
|
||||
data ASCII = ASCII deriving (Show,Eq,Typeable)
|
||||
@ -13,5 +15,7 @@ instance Encoding ASCII where
|
||||
decodeChar _ = do
|
||||
w <- fetchWord8
|
||||
return $ chr $ fromIntegral w
|
||||
encodeChar _ c = do
|
||||
pushWord8 $ fromIntegral $ ord c
|
||||
encodeChar enc c
|
||||
| encodeable enc c = pushWord8 . fromIntegral . ord $ c
|
||||
| otherwise = throwException . HasNoRepresentation $ c
|
||||
encodeable _ c = c < '\128'
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
{-# LANGUAGE ExistentialQuantification #-}
|
||||
module Data.Encoding.Base where
|
||||
|
||||
import Data.Encoding.Exception
|
||||
@ -5,18 +6,49 @@ import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ByteSink
|
||||
|
||||
import Control.Throws
|
||||
import Data.Array as Array
|
||||
import Data.Array.Unboxed as Array
|
||||
import Data.Map as Map hiding ((!))
|
||||
import Data.Word
|
||||
import Data.Char
|
||||
import Data.Typeable
|
||||
|
||||
{- | The base class for all encodings. At least decodeChar, encodeChar and encodeable must be implemented.
|
||||
-}
|
||||
class Encoding enc where
|
||||
-- | Read a single character of a ByteSource
|
||||
decodeChar :: ByteSource m => enc -> m Char
|
||||
-- | Encode a single character and write it to a ByteSink
|
||||
encodeChar :: ByteSink m => enc -> Char -> m ()
|
||||
-- | Read characters from a ByteSource until it is empty
|
||||
decode :: ByteSource m => enc -> m String
|
||||
decode e = untilM sourceEmpty (decodeChar e)
|
||||
-- | Encode a String and write it to a ByteSink
|
||||
encode :: ByteSink m => enc -> String -> m ()
|
||||
encode e = mapM_ (encodeChar e)
|
||||
-- | Tests whether a given character is representable in the Encoding.
|
||||
-- If this yields True, encodeChar must not fail.
|
||||
-- If it yields False, encodeChar _must_ throw an exception.
|
||||
encodeable :: enc -> Char -> Bool
|
||||
|
||||
{- | Wraps all possible encoding types into one data type.
|
||||
Used when a function needs to return an encoding.
|
||||
-}
|
||||
data DynEncoding = forall enc. (Encoding enc,Eq enc,Typeable enc,Show enc) => DynEncoding enc
|
||||
|
||||
instance Show DynEncoding where
|
||||
show (DynEncoding enc) = show enc
|
||||
|
||||
instance Encoding DynEncoding where
|
||||
decodeChar (DynEncoding e) = decodeChar e
|
||||
encodeChar (DynEncoding e) = encodeChar e
|
||||
decode (DynEncoding e) = decode e
|
||||
encode (DynEncoding e) = encode e
|
||||
encodeable (DynEncoding e) = encodeable e
|
||||
|
||||
instance Eq DynEncoding where
|
||||
(DynEncoding e1) == (DynEncoding e2) = case cast e2 of
|
||||
Nothing -> False
|
||||
Just e2' -> e1==e2'
|
||||
|
||||
untilM :: Monad m => m Bool -> m a -> m [a]
|
||||
untilM check act = do
|
||||
@ -27,7 +59,7 @@ untilM check act = do
|
||||
x <- act
|
||||
xs <- untilM check act
|
||||
return (x:xs)
|
||||
)
|
||||
)
|
||||
|
||||
untilM_ :: Monad m => m Bool -> m a -> m ()
|
||||
untilM_ check act = untilM check act >> return ()
|
||||
@ -37,9 +69,33 @@ encodeWithMap mp c = case Map.lookup c mp of
|
||||
Nothing -> throwException $ HasNoRepresentation c
|
||||
Just v -> pushWord8 v
|
||||
|
||||
decodeWithArray :: ByteSource m => Array Word8 (Maybe Char) -> m Char
|
||||
encodeWithMap2 :: ByteSink m => Map Char (Word8,Word8) -> Char -> m ()
|
||||
encodeWithMap2 mp c = case Map.lookup c mp of
|
||||
Nothing -> throwException $ HasNoRepresentation c
|
||||
Just (w1,w2) -> do
|
||||
pushWord8 w1
|
||||
pushWord8 w2
|
||||
|
||||
encodeableWithMap :: Map Char a -> Char -> Bool
|
||||
encodeableWithMap = flip Map.member
|
||||
|
||||
decodeWithArray :: ByteSource m => UArray Word8 Int -> m Char
|
||||
decodeWithArray arr = do
|
||||
w <- fetchWord8
|
||||
case arr!w of
|
||||
Nothing -> throwException $ IllegalCharacter w
|
||||
Just c -> return c
|
||||
let res = arr!w
|
||||
if res < 0
|
||||
then throwException $ IllegalCharacter w
|
||||
else return $ chr res
|
||||
|
||||
decodeWithArray2 :: ByteSource m => UArray (Word8,Word8) Int -> m Char
|
||||
decodeWithArray2 arr = do
|
||||
w1 <- fetchWord8
|
||||
w2 <- fetchWord8
|
||||
if inRange (bounds arr) (w1,w2)
|
||||
then (do
|
||||
let res = arr!(w1,w2)
|
||||
if res < 0
|
||||
then throwException $ IllegalCharacter w1
|
||||
else return $ chr res
|
||||
)
|
||||
else throwException $ IllegalCharacter w1
|
||||
|
||||
@ -182,3 +182,4 @@ instance Encoding BootString where
|
||||
Nothing -> punyDecode base nbase
|
||||
Just ww -> throwException (IllegalCharacter ww)
|
||||
Nothing -> punyDecode [] wrds
|
||||
encodeable bs c = True -- XXX: hm, really?
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses,CPP #-}
|
||||
module Data.Encoding.ByteSink where
|
||||
|
||||
import Data.Encoding.Exception
|
||||
@ -11,6 +11,7 @@ import Data.Word
|
||||
import Data.Foldable (toList)
|
||||
import Control.Throws
|
||||
import Control.Exception.Extensible
|
||||
import Control.Applicative
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Identity
|
||||
import Control.Monad.Reader
|
||||
@ -80,6 +81,13 @@ instance ByteSink PutM where
|
||||
|
||||
newtype PutME a = PutME (Either EncodingException (PutM (),a))
|
||||
|
||||
instance Functor PutME where
|
||||
fmap = liftM
|
||||
|
||||
instance Applicative PutME where
|
||||
pure = return
|
||||
(<*>) = ap
|
||||
|
||||
instance Monad PutME where
|
||||
return x = PutME $ Right (return (),x)
|
||||
(PutME x) >>= g = PutME $ do
|
||||
@ -101,22 +109,26 @@ instance ByteSink PutME where
|
||||
pushWord64be w = PutME $ Right (putWord64be w,())
|
||||
pushWord64le w = PutME $ Right (putWord64le w,())
|
||||
|
||||
#if MIN_VERSION_base(4,3,0)
|
||||
#else
|
||||
instance Monad (Either EncodingException) where
|
||||
return x = Right x
|
||||
Left err >>= g = Left err
|
||||
Right x >>= g = g x
|
||||
#endif
|
||||
|
||||
instance Throws EncodingException (State (Seq Char)) where
|
||||
throwException = throw
|
||||
|
||||
instance ByteSink (State (Seq Char)) where
|
||||
pushWord8 x = modify (|> (chr $ fromIntegral x))
|
||||
|
||||
instance ByteSink (StateT (Seq Char) (Either EncodingException)) where
|
||||
instance (Monad m,Throws EncodingException m) => ByteSink (StateT (Seq Char) m) where
|
||||
pushWord8 x = modify (|> (chr $ fromIntegral x))
|
||||
|
||||
newtype StrictSink a = StrictS (Ptr Word8 -> Int -> Int -> IO (a,Ptr Word8,Int,Int))
|
||||
|
||||
instance Functor StrictSink where
|
||||
fmap = liftM
|
||||
|
||||
instance Applicative StrictSink where
|
||||
pure = return
|
||||
(<*>) = ap
|
||||
|
||||
instance Monad StrictSink where
|
||||
return x = StrictS $ \cstr pos max -> return (x,cstr,pos,max)
|
||||
(StrictS f) >>= g = StrictS (\cstr pos max -> do
|
||||
@ -143,6 +155,13 @@ instance ByteSink StrictSink where
|
||||
|
||||
newtype StrictSinkE a = StrictSinkE (StrictSink (Either EncodingException a))
|
||||
|
||||
instance Functor StrictSinkE where
|
||||
fmap = liftM
|
||||
|
||||
instance Applicative StrictSinkE where
|
||||
pure = return
|
||||
(<*>) = ap
|
||||
|
||||
instance Monad StrictSinkE where
|
||||
return = StrictSinkE . return . Right
|
||||
(StrictSinkE s) >>= g = StrictSinkE $ do
|
||||
@ -170,6 +189,13 @@ createStrict sink = createStrictWithLen sink 32
|
||||
|
||||
newtype StrictSinkExplicit a = StrictSinkExplicit (StrictSink (Either EncodingException a))
|
||||
|
||||
instance Functor StrictSinkExplicit where
|
||||
fmap = liftM
|
||||
|
||||
instance Applicative StrictSinkExplicit where
|
||||
pure = return
|
||||
(<*>) = ap
|
||||
|
||||
instance Monad StrictSinkExplicit where
|
||||
return = (StrictSinkExplicit).return.Right
|
||||
(StrictSinkExplicit sink) >>= f
|
||||
@ -192,4 +218,4 @@ instance ByteSink (ReaderT Handle IO) where
|
||||
pushWord8 x = do
|
||||
h <- ask
|
||||
liftIO $ do
|
||||
hPutChar h (chr $ fromIntegral x)
|
||||
hPutChar h (chr $ fromIntegral x)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses,CPP #-}
|
||||
module Data.Encoding.ByteSource where
|
||||
|
||||
import Data.Encoding.Exception
|
||||
@ -6,7 +6,9 @@ import Data.Encoding.Exception
|
||||
import Data.Bits
|
||||
import Data.Binary.Get
|
||||
import Data.Char
|
||||
import Data.Maybe
|
||||
import Data.Word
|
||||
import Control.Applicative as A
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Identity
|
||||
import Control.Monad.Reader
|
||||
@ -19,6 +21,9 @@ import System.IO
|
||||
class (Monad m,Throws DecodingException m) => ByteSource m where
|
||||
sourceEmpty :: m Bool
|
||||
fetchWord8 :: m Word8
|
||||
-- 'fetchAhead act' should return the same thing 'act' does, but should
|
||||
-- only consume input if 'act' returns a 'Just' value
|
||||
fetchAhead :: m (Maybe a) -> m (Maybe a)
|
||||
fetchWord16be :: m Word16
|
||||
fetchWord16be = do
|
||||
w1 <- fetchWord8
|
||||
@ -94,6 +99,20 @@ instance Throws DecodingException Get where
|
||||
instance ByteSource Get where
|
||||
sourceEmpty = isEmpty
|
||||
fetchWord8 = getWord8
|
||||
#if MIN_VERSION_binary(0,6,0)
|
||||
fetchAhead act = (do
|
||||
res <- act
|
||||
case res of
|
||||
Nothing -> A.empty
|
||||
Just a -> return res
|
||||
) <|> return Nothing
|
||||
#else
|
||||
fetchAhead act = do
|
||||
res <- lookAhead act
|
||||
case res of
|
||||
Nothing -> return Nothing
|
||||
Just a -> act
|
||||
#endif
|
||||
fetchWord16be = getWord16be
|
||||
fetchWord16le = getWord16le
|
||||
fetchWord32be = getWord32be
|
||||
@ -101,54 +120,55 @@ instance ByteSource Get where
|
||||
fetchWord64be = getWord64be
|
||||
fetchWord64le = getWord64le
|
||||
|
||||
instance Throws DecodingException (State [Char]) where
|
||||
throwException = throw
|
||||
fetchAheadState act = do
|
||||
chs <- get
|
||||
res <- act
|
||||
when (isNothing res) (put chs)
|
||||
return res
|
||||
|
||||
instance ByteSource (State [Char]) where
|
||||
instance ByteSource (StateT [Char] Identity) where
|
||||
sourceEmpty = gets null
|
||||
fetchWord8 = do
|
||||
chs <- get
|
||||
case chs of
|
||||
[] -> throw UnexpectedEnd
|
||||
[] -> throwException UnexpectedEnd
|
||||
c:cs -> do
|
||||
put cs
|
||||
return (fromIntegral $ ord c)
|
||||
fetchAhead = fetchAheadState
|
||||
|
||||
#if MIN_VERSION_base(4,3,0)
|
||||
#else
|
||||
instance Monad (Either DecodingException) where
|
||||
return = Right
|
||||
(Left err) >>= g = Left err
|
||||
(Right x) >>= g = g x
|
||||
#endif
|
||||
|
||||
instance ByteSource (StateT [Char] (Either DecodingException)) where
|
||||
sourceEmpty = gets null
|
||||
fetchWord8 = do
|
||||
chs <- get
|
||||
case chs of
|
||||
[] -> throwException UnexpectedEnd --handleDecodingError UnexpectedEnd
|
||||
[] -> throwException UnexpectedEnd
|
||||
c:cs -> do
|
||||
put cs
|
||||
return (fromIntegral $ ord c)
|
||||
fetchAhead = fetchAheadState
|
||||
|
||||
instance Throws DecodingException (State BS.ByteString) where
|
||||
throwException = throw
|
||||
|
||||
instance ByteSource (State BS.ByteString) where
|
||||
sourceEmpty = gets BS.null
|
||||
fetchWord8 = State (\str -> case BS.uncons str of
|
||||
Nothing -> throw UnexpectedEnd
|
||||
Just (c,cs) -> (c,cs))
|
||||
|
||||
instance ByteSource (StateT BS.ByteString (Either DecodingException)) where
|
||||
instance (Monad m,Throws DecodingException m) => ByteSource (StateT BS.ByteString m) where
|
||||
sourceEmpty = gets BS.null
|
||||
fetchWord8 = StateT (\str -> case BS.uncons str of
|
||||
Nothing -> Left UnexpectedEnd
|
||||
Just ns -> Right ns)
|
||||
Nothing -> throwException UnexpectedEnd
|
||||
Just (c,cs) -> return (c,cs))
|
||||
fetchAhead = fetchAheadState
|
||||
|
||||
instance ByteSource (StateT LBS.ByteString (Either DecodingException)) where
|
||||
sourceEmpty = gets LBS.null
|
||||
fetchWord8 = StateT (\str -> case LBS.uncons str of
|
||||
Nothing -> Left UnexpectedEnd
|
||||
Just ns -> Right ns)
|
||||
fetchAhead = fetchAheadState
|
||||
|
||||
instance ByteSource (ReaderT Handle IO) where
|
||||
sourceEmpty = do
|
||||
@ -158,4 +178,10 @@ instance ByteSource (ReaderT Handle IO) where
|
||||
h <- ask
|
||||
liftIO $ do
|
||||
ch <- hGetChar h
|
||||
return (fromIntegral $ ord ch)
|
||||
return (fromIntegral $ ord ch)
|
||||
fetchAhead act = do
|
||||
h <- ask
|
||||
pos <- liftIO $ hGetPosn h
|
||||
res <- act
|
||||
when (isNothing res) (liftIO $ hSetPosn pos)
|
||||
return res
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1250 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1250" "CP1250.TXT" )
|
||||
@ -1,21 +1,5 @@
|
||||
#
|
||||
# Name: cp1250 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1250 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1250 order
|
||||
#
|
||||
#Implements the Windows-1250 encoding.
|
||||
#For details, refer to <http://en.wikipedia.org/wiki/Windows-1250>.
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1251 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1251" "CP1251.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1251 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1251 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1251 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1252 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1252" "CP1252.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1252 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1252 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1252 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1253 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1253" "CP1253.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1253 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1253 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1253 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1254 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1254" "CP1254.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1254 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1254 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1254 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1255 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1255" "CP1255.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1255 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 1/7/2000
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1255 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1255 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1256 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1256" "CP1256.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1256 to Unicode table
|
||||
# Unicode version: 2.1
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 01/5/99
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1256 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1256 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1257 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1257" "CP1257.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1257 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1257 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1257 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.CP1258 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "CP1258" "CP1258.TXT" )
|
||||
@ -1,21 +1,3 @@
|
||||
#
|
||||
# Name: cp1258 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: Shawn.Steele@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1258 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1258 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
256
Data/Encoding/CP437.mapping
Normal file
256
Data/Encoding/CP437.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00a5 #YEN SIGN
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP737.mapping
Normal file
256
Data/Encoding/CP737.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x0391 #GREEK CAPITAL LETTER ALPHA
|
||||
0x81 0x0392 #GREEK CAPITAL LETTER BETA
|
||||
0x82 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0x83 0x0394 #GREEK CAPITAL LETTER DELTA
|
||||
0x84 0x0395 #GREEK CAPITAL LETTER EPSILON
|
||||
0x85 0x0396 #GREEK CAPITAL LETTER ZETA
|
||||
0x86 0x0397 #GREEK CAPITAL LETTER ETA
|
||||
0x87 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0x88 0x0399 #GREEK CAPITAL LETTER IOTA
|
||||
0x89 0x039a #GREEK CAPITAL LETTER KAPPA
|
||||
0x8a 0x039b #GREEK CAPITAL LETTER LAMDA
|
||||
0x8b 0x039c #GREEK CAPITAL LETTER MU
|
||||
0x8c 0x039d #GREEK CAPITAL LETTER NU
|
||||
0x8d 0x039e #GREEK CAPITAL LETTER XI
|
||||
0x8e 0x039f #GREEK CAPITAL LETTER OMICRON
|
||||
0x8f 0x03a0 #GREEK CAPITAL LETTER PI
|
||||
0x90 0x03a1 #GREEK CAPITAL LETTER RHO
|
||||
0x91 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0x92 0x03a4 #GREEK CAPITAL LETTER TAU
|
||||
0x93 0x03a5 #GREEK CAPITAL LETTER UPSILON
|
||||
0x94 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0x95 0x03a7 #GREEK CAPITAL LETTER CHI
|
||||
0x96 0x03a8 #GREEK CAPITAL LETTER PSI
|
||||
0x97 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0x98 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0x99 0x03b2 #GREEK SMALL LETTER BETA
|
||||
0x9a 0x03b3 #GREEK SMALL LETTER GAMMA
|
||||
0x9b 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0x9c 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0x9d 0x03b6 #GREEK SMALL LETTER ZETA
|
||||
0x9e 0x03b7 #GREEK SMALL LETTER ETA
|
||||
0x9f 0x03b8 #GREEK SMALL LETTER THETA
|
||||
0xa0 0x03b9 #GREEK SMALL LETTER IOTA
|
||||
0xa1 0x03ba #GREEK SMALL LETTER KAPPA
|
||||
0xa2 0x03bb #GREEK SMALL LETTER LAMDA
|
||||
0xa3 0x03bc #GREEK SMALL LETTER MU
|
||||
0xa4 0x03bd #GREEK SMALL LETTER NU
|
||||
0xa5 0x03be #GREEK SMALL LETTER XI
|
||||
0xa6 0x03bf #GREEK SMALL LETTER OMICRON
|
||||
0xa7 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xa8 0x03c1 #GREEK SMALL LETTER RHO
|
||||
0xa9 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xaa 0x03c2 #GREEK SMALL LETTER FINAL SIGMA
|
||||
0xab 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xac 0x03c5 #GREEK SMALL LETTER UPSILON
|
||||
0xad 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xae 0x03c7 #GREEK SMALL LETTER CHI
|
||||
0xaf 0x03c8 #GREEK SMALL LETTER PSI
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03c9 #GREEK SMALL LETTER OMEGA
|
||||
0xe1 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS
|
||||
0xe2 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS
|
||||
0xe3 0x03ae #GREEK SMALL LETTER ETA WITH TONOS
|
||||
0xe4 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
||||
0xe5 0x03af #GREEK SMALL LETTER IOTA WITH TONOS
|
||||
0xe6 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xe7 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xe8 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
0xe9 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
0xea 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS
|
||||
0xeb 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS
|
||||
0xec 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS
|
||||
0xed 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS
|
||||
0xee 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS
|
||||
0xef 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS
|
||||
0xf0 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
|
||||
0xf5 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP775.mapping
Normal file
256
Data/Encoding/CP775.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x0101 #LATIN SMALL LETTER A WITH MACRON
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x0123 #LATIN SMALL LETTER G WITH CEDILLA
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x0107 #LATIN SMALL LETTER C WITH ACUTE
|
||||
0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE
|
||||
0x89 0x0113 #LATIN SMALL LETTER E WITH MACRON
|
||||
0x8a 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA
|
||||
0x8b 0x0157 #LATIN SMALL LETTER R WITH CEDILLA
|
||||
0x8c 0x012b #LATIN SMALL LETTER I WITH MACRON
|
||||
0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x014d #LATIN SMALL LETTER O WITH MACRON
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0x96 0x00a2 #CENT SIGN
|
||||
0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x00d7 #MULTIPLICATION SIGN
|
||||
0x9f 0x00a4 #CURRENCY SIGN
|
||||
0xa0 0x0100 #LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xa1 0x012a #LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xa4 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xa5 0x017a #LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xa6 0x201d #RIGHT DOUBLE QUOTATION MARK
|
||||
0xa7 0x00a6 #BROKEN BAR
|
||||
0xa8 0x00a9 #COPYRIGHT SIGN
|
||||
0xa9 0x00ae #REGISTERED SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xb6 0x010c #LATIN CAPITAL LETTER C WITH CARON
|
||||
0xb7 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xb8 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x012e #LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xbe 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xc7 0x016a #LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x017d #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xd0 0x0105 #LATIN SMALL LETTER A WITH OGONEK
|
||||
0xd1 0x010d #LATIN SMALL LETTER C WITH CARON
|
||||
0xd2 0x0119 #LATIN SMALL LETTER E WITH OGONEK
|
||||
0xd3 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xd4 0x012f #LATIN SMALL LETTER I WITH OGONEK
|
||||
0xd5 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0xd6 0x0173 #LATIN SMALL LETTER U WITH OGONEK
|
||||
0xd7 0x016b #LATIN SMALL LETTER U WITH MACRON
|
||||
0xd8 0x017e #LATIN SMALL LETTER Z WITH CARON
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN)
|
||||
0xe2 0x014c #LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x0144 #LATIN SMALL LETTER N WITH ACUTE
|
||||
0xe8 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xe9 0x0137 #LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xea 0x013b #LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xeb 0x013c #LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xec 0x0146 #LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xed 0x0112 #LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xee 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xef 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x201c #LEFT DOUBLE QUOTATION MARK
|
||||
0xf3 0x00be #VULGAR FRACTION THREE QUARTERS
|
||||
0xf4 0x00b6 #PILCROW SIGN
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x201e #DOUBLE LOW-9 QUOTATION MARK
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x00b9 #SUPERSCRIPT ONE
|
||||
0xfc 0x00b3 #SUPERSCRIPT THREE
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP850.mapping
Normal file
256
Data/Encoding/CP850.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x00d7 #MULTIPLICATION SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x00ae #REGISTERED SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xb8 0x00a9 #COPYRIGHT SIGN
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x00a2 #CENT SIGN
|
||||
0xbe 0x00a5 #YEN SIGN
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x00f0 #LATIN SMALL LETTER ETH
|
||||
0xd1 0x00d0 #LATIN CAPITAL LETTER ETH
|
||||
0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xd5 0x0131 #LATIN SMALL LETTER DOTLESS I
|
||||
0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x00a6 #BROKEN BAR
|
||||
0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x00fe #LATIN SMALL LETTER THORN
|
||||
0xe8 0x00de #LATIN CAPITAL LETTER THORN
|
||||
0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xee 0x00af #MACRON
|
||||
0xef 0x00b4 #ACUTE ACCENT
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2017 #DOUBLE LOW LINE
|
||||
0xf3 0x00be #VULGAR FRACTION THREE QUARTERS
|
||||
0xf4 0x00b6 #PILCROW SIGN
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x00b8 #CEDILLA
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x00b9 #SUPERSCRIPT ONE
|
||||
0xfc 0x00b3 #SUPERSCRIPT THREE
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP852.mapping
Normal file
256
Data/Encoding/CP852.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x016f #LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0x86 0x0107 #LATIN SMALL LETTER C WITH ACUTE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0x8b 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0x92 0x013a #LATIN SMALL LETTER L WITH ACUTE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x013d #LATIN CAPITAL LETTER L WITH CARON
|
||||
0x96 0x013e #LATIN SMALL LETTER L WITH CARON
|
||||
0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x0164 #LATIN CAPITAL LETTER T WITH CARON
|
||||
0x9c 0x0165 #LATIN SMALL LETTER T WITH CARON
|
||||
0x9d 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
|
||||
0x9e 0x00d7 #MULTIPLICATION SIGN
|
||||
0x9f 0x010d #LATIN SMALL LETTER C WITH CARON
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xa5 0x0105 #LATIN SMALL LETTER A WITH OGONEK
|
||||
0xa6 0x017d #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xa7 0x017e #LATIN SMALL LETTER Z WITH CARON
|
||||
0xa8 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xa9 0x0119 #LATIN SMALL LETTER E WITH OGONEK
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x017a #LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xac 0x010c #LATIN CAPITAL LETTER C WITH CARON
|
||||
0xad 0x015f #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xb7 0x011a #LATIN CAPITAL LETTER E WITH CARON
|
||||
0xb8 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xbe 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x0102 #LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xc7 0x0103 #LATIN SMALL LETTER A WITH BREVE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x0111 #LATIN SMALL LETTER D WITH STROKE
|
||||
0xd1 0x0110 #LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xd2 0x010e #LATIN CAPITAL LETTER D WITH CARON
|
||||
0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xd4 0x010f #LATIN SMALL LETTER D WITH CARON
|
||||
0xd5 0x0147 #LATIN CAPITAL LETTER N WITH CARON
|
||||
0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xd8 0x011b #LATIN SMALL LETTER E WITH CARON
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xde 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xe4 0x0144 #LATIN SMALL LETTER N WITH ACUTE
|
||||
0xe5 0x0148 #LATIN SMALL LETTER N WITH CARON
|
||||
0xe6 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0xe7 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0xe8 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xea 0x0155 #LATIN SMALL LETTER R WITH ACUTE
|
||||
0xeb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xee 0x0163 #LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xef 0x00b4 #ACUTE ACCENT
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x02dd #DOUBLE ACUTE ACCENT
|
||||
0xf2 0x02db #OGONEK
|
||||
0xf3 0x02c7 #CARON
|
||||
0xf4 0x02d8 #BREVE
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x00b8 #CEDILLA
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x02d9 #DOT ABOVE
|
||||
0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xfc 0x0158 #LATIN CAPITAL LETTER R WITH CARON
|
||||
0xfd 0x0159 #LATIN SMALL LETTER R WITH CARON
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP855.mapping
Normal file
256
Data/Encoding/CP855.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x0452 #CYRILLIC SMALL LETTER DJE
|
||||
0x81 0x0402 #CYRILLIC CAPITAL LETTER DJE
|
||||
0x82 0x0453 #CYRILLIC SMALL LETTER GJE
|
||||
0x83 0x0403 #CYRILLIC CAPITAL LETTER GJE
|
||||
0x84 0x0451 #CYRILLIC SMALL LETTER IO
|
||||
0x85 0x0401 #CYRILLIC CAPITAL LETTER IO
|
||||
0x86 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0x87 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0x88 0x0455 #CYRILLIC SMALL LETTER DZE
|
||||
0x89 0x0405 #CYRILLIC CAPITAL LETTER DZE
|
||||
0x8a 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0x8b 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0x8c 0x0457 #CYRILLIC SMALL LETTER YI
|
||||
0x8d 0x0407 #CYRILLIC CAPITAL LETTER YI
|
||||
0x8e 0x0458 #CYRILLIC SMALL LETTER JE
|
||||
0x8f 0x0408 #CYRILLIC CAPITAL LETTER JE
|
||||
0x90 0x0459 #CYRILLIC SMALL LETTER LJE
|
||||
0x91 0x0409 #CYRILLIC CAPITAL LETTER LJE
|
||||
0x92 0x045a #CYRILLIC SMALL LETTER NJE
|
||||
0x93 0x040a #CYRILLIC CAPITAL LETTER NJE
|
||||
0x94 0x045b #CYRILLIC SMALL LETTER TSHE
|
||||
0x95 0x040b #CYRILLIC CAPITAL LETTER TSHE
|
||||
0x96 0x045c #CYRILLIC SMALL LETTER KJE
|
||||
0x97 0x040c #CYRILLIC CAPITAL LETTER KJE
|
||||
0x98 0x045e #CYRILLIC SMALL LETTER SHORT U
|
||||
0x99 0x040e #CYRILLIC CAPITAL LETTER SHORT U
|
||||
0x9a 0x045f #CYRILLIC SMALL LETTER DZHE
|
||||
0x9b 0x040f #CYRILLIC CAPITAL LETTER DZHE
|
||||
0x9c 0x044e #CYRILLIC SMALL LETTER YU
|
||||
0x9d 0x042e #CYRILLIC CAPITAL LETTER YU
|
||||
0x9e 0x044a #CYRILLIC SMALL LETTER HARD SIGN
|
||||
0x9f 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xa0 0x0430 #CYRILLIC SMALL LETTER A
|
||||
0xa1 0x0410 #CYRILLIC CAPITAL LETTER A
|
||||
0xa2 0x0431 #CYRILLIC SMALL LETTER BE
|
||||
0xa3 0x0411 #CYRILLIC CAPITAL LETTER BE
|
||||
0xa4 0x0446 #CYRILLIC SMALL LETTER TSE
|
||||
0xa5 0x0426 #CYRILLIC CAPITAL LETTER TSE
|
||||
0xa6 0x0434 #CYRILLIC SMALL LETTER DE
|
||||
0xa7 0x0414 #CYRILLIC CAPITAL LETTER DE
|
||||
0xa8 0x0435 #CYRILLIC SMALL LETTER IE
|
||||
0xa9 0x0415 #CYRILLIC CAPITAL LETTER IE
|
||||
0xaa 0x0444 #CYRILLIC SMALL LETTER EF
|
||||
0xab 0x0424 #CYRILLIC CAPITAL LETTER EF
|
||||
0xac 0x0433 #CYRILLIC SMALL LETTER GHE
|
||||
0xad 0x0413 #CYRILLIC CAPITAL LETTER GHE
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x0445 #CYRILLIC SMALL LETTER HA
|
||||
0xb6 0x0425 #CYRILLIC CAPITAL LETTER HA
|
||||
0xb7 0x0438 #CYRILLIC SMALL LETTER I
|
||||
0xb8 0x0418 #CYRILLIC CAPITAL LETTER I
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x0439 #CYRILLIC SMALL LETTER SHORT I
|
||||
0xbe 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x043a #CYRILLIC SMALL LETTER KA
|
||||
0xc7 0x041a #CYRILLIC CAPITAL LETTER KA
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x043b #CYRILLIC SMALL LETTER EL
|
||||
0xd1 0x041b #CYRILLIC CAPITAL LETTER EL
|
||||
0xd2 0x043c #CYRILLIC SMALL LETTER EM
|
||||
0xd3 0x041c #CYRILLIC CAPITAL LETTER EM
|
||||
0xd4 0x043d #CYRILLIC SMALL LETTER EN
|
||||
0xd5 0x041d #CYRILLIC CAPITAL LETTER EN
|
||||
0xd6 0x043e #CYRILLIC SMALL LETTER O
|
||||
0xd7 0x041e #CYRILLIC CAPITAL LETTER O
|
||||
0xd8 0x043f #CYRILLIC SMALL LETTER PE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x041f #CYRILLIC CAPITAL LETTER PE
|
||||
0xde 0x044f #CYRILLIC SMALL LETTER YA
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x042f #CYRILLIC CAPITAL LETTER YA
|
||||
0xe1 0x0440 #CYRILLIC SMALL LETTER ER
|
||||
0xe2 0x0420 #CYRILLIC CAPITAL LETTER ER
|
||||
0xe3 0x0441 #CYRILLIC SMALL LETTER ES
|
||||
0xe4 0x0421 #CYRILLIC CAPITAL LETTER ES
|
||||
0xe5 0x0442 #CYRILLIC SMALL LETTER TE
|
||||
0xe6 0x0422 #CYRILLIC CAPITAL LETTER TE
|
||||
0xe7 0x0443 #CYRILLIC SMALL LETTER U
|
||||
0xe8 0x0423 #CYRILLIC CAPITAL LETTER U
|
||||
0xe9 0x0436 #CYRILLIC SMALL LETTER ZHE
|
||||
0xea 0x0416 #CYRILLIC CAPITAL LETTER ZHE
|
||||
0xeb 0x0432 #CYRILLIC SMALL LETTER VE
|
||||
0xec 0x0412 #CYRILLIC CAPITAL LETTER VE
|
||||
0xed 0x044c #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xee 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xef 0x2116 #NUMERO SIGN
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x044b #CYRILLIC SMALL LETTER YERU
|
||||
0xf2 0x042b #CYRILLIC CAPITAL LETTER YERU
|
||||
0xf3 0x0437 #CYRILLIC SMALL LETTER ZE
|
||||
0xf4 0x0417 #CYRILLIC CAPITAL LETTER ZE
|
||||
0xf5 0x0448 #CYRILLIC SMALL LETTER SHA
|
||||
0xf6 0x0428 #CYRILLIC CAPITAL LETTER SHA
|
||||
0xf7 0x044d #CYRILLIC SMALL LETTER E
|
||||
0xf8 0x042d #CYRILLIC CAPITAL LETTER E
|
||||
0xf9 0x0449 #CYRILLIC SMALL LETTER SHCHA
|
||||
0xfa 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xfb 0x0447 #CYRILLIC SMALL LETTER CHE
|
||||
0xfc 0x0427 #CYRILLIC CAPITAL LETTER CHE
|
||||
0xfd 0x00a7 #SECTION SIGN
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP857.mapping
Normal file
256
Data/Encoding/CP857.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x0131 #LATIN SMALL LETTER DOTLESS I
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x0130 #LATIN CAPITAL LETTER I WITH DOT ABOVE
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0x9f 0x015f #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x011e #LATIN CAPITAL LETTER G WITH BREVE
|
||||
0xa7 0x011f #LATIN SMALL LETTER G WITH BREVE
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x00ae #REGISTERED SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xb8 0x00a9 #COPYRIGHT SIGN
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x00a2 #CENT SIGN
|
||||
0xbe 0x00a5 #YEN SIGN
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xd1 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xd5 #UNDEFINED
|
||||
0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x00a6 #BROKEN BAR
|
||||
0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 #UNDEFINED
|
||||
0xe8 0x00d7 #MULTIPLICATION SIGN
|
||||
0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xec 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0xed 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xee 0x00af #MACRON
|
||||
0xef 0x00b4 #ACUTE ACCENT
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 #UNDEFINED
|
||||
0xf3 0x00be #VULGAR FRACTION THREE QUARTERS
|
||||
0xf4 0x00b6 #PILCROW SIGN
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x00b8 #CEDILLA
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x00b9 #SUPERSCRIPT ONE
|
||||
0xfc 0x00b3 #SUPERSCRIPT THREE
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP860.mapping
Normal file
256
Data/Encoding/CP860.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0x8c 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0x8f 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0x92 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0x99 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP861.mapping
Normal file
256
Data/Encoding/CP861.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00d0 #LATIN CAPITAL LETTER ETH
|
||||
0x8c 0x00f0 #LATIN SMALL LETTER ETH
|
||||
0x8d 0x00de #LATIN CAPITAL LETTER THORN
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00fe #LATIN SMALL LETTER THORN
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0x98 0x00fd #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xa5 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xa6 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xa7 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP862.mapping
Normal file
256
Data/Encoding/CP862.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x05d0 #HEBREW LETTER ALEF
|
||||
0x81 0x05d1 #HEBREW LETTER BET
|
||||
0x82 0x05d2 #HEBREW LETTER GIMEL
|
||||
0x83 0x05d3 #HEBREW LETTER DALET
|
||||
0x84 0x05d4 #HEBREW LETTER HE
|
||||
0x85 0x05d5 #HEBREW LETTER VAV
|
||||
0x86 0x05d6 #HEBREW LETTER ZAYIN
|
||||
0x87 0x05d7 #HEBREW LETTER HET
|
||||
0x88 0x05d8 #HEBREW LETTER TET
|
||||
0x89 0x05d9 #HEBREW LETTER YOD
|
||||
0x8a 0x05da #HEBREW LETTER FINAL KAF
|
||||
0x8b 0x05db #HEBREW LETTER KAF
|
||||
0x8c 0x05dc #HEBREW LETTER LAMED
|
||||
0x8d 0x05dd #HEBREW LETTER FINAL MEM
|
||||
0x8e 0x05de #HEBREW LETTER MEM
|
||||
0x8f 0x05df #HEBREW LETTER FINAL NUN
|
||||
0x90 0x05e0 #HEBREW LETTER NUN
|
||||
0x91 0x05e1 #HEBREW LETTER SAMEKH
|
||||
0x92 0x05e2 #HEBREW LETTER AYIN
|
||||
0x93 0x05e3 #HEBREW LETTER FINAL PE
|
||||
0x94 0x05e4 #HEBREW LETTER PE
|
||||
0x95 0x05e5 #HEBREW LETTER FINAL TSADI
|
||||
0x96 0x05e6 #HEBREW LETTER TSADI
|
||||
0x97 0x05e7 #HEBREW LETTER QOF
|
||||
0x98 0x05e8 #HEBREW LETTER RESH
|
||||
0x99 0x05e9 #HEBREW LETTER SHIN
|
||||
0x9a 0x05ea #HEBREW LETTER TAV
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00a5 #YEN SIGN
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN)
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP863.mapping
Normal file
256
Data/Encoding/CP863.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00b6 #PILCROW SIGN
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x2017 #DOUBLE LOW LINE
|
||||
0x8e 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0x8f 0x00a7 #SECTION SIGN
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0x92 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0x95 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00a4 #CURRENCY SIGN
|
||||
0x99 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0x9e 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00a6 #BROKEN BAR
|
||||
0xa1 0x00b4 #ACUTE ACCENT
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00a8 #DIAERESIS
|
||||
0xa5 0x00b8 #CEDILLA
|
||||
0xa6 0x00b3 #SUPERSCRIPT THREE
|
||||
0xa7 0x00af #MACRON
|
||||
0xa8 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00be #VULGAR FRACTION THREE QUARTERS
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP864.mapping
Normal file
256
Data/Encoding/CP864.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x066a #ARABIC PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00b0 #DEGREE SIGN
|
||||
0x81 0x00b7 #MIDDLE DOT
|
||||
0x82 0x2219 #BULLET OPERATOR
|
||||
0x83 0x221a #SQUARE ROOT
|
||||
0x84 0x2592 #MEDIUM SHADE
|
||||
0x85 0x2500 #FORMS LIGHT HORIZONTAL
|
||||
0x86 0x2502 #FORMS LIGHT VERTICAL
|
||||
0x87 0x253c #FORMS LIGHT VERTICAL AND HORIZONTAL
|
||||
0x88 0x2524 #FORMS LIGHT VERTICAL AND LEFT
|
||||
0x89 0x252c #FORMS LIGHT DOWN AND HORIZONTAL
|
||||
0x8a 0x251c #FORMS LIGHT VERTICAL AND RIGHT
|
||||
0x8b 0x2534 #FORMS LIGHT UP AND HORIZONTAL
|
||||
0x8c 0x2510 #FORMS LIGHT DOWN AND LEFT
|
||||
0x8d 0x250c #FORMS LIGHT DOWN AND RIGHT
|
||||
0x8e 0x2514 #FORMS LIGHT UP AND RIGHT
|
||||
0x8f 0x2518 #FORMS LIGHT UP AND LEFT
|
||||
0x90 0x03b2 #GREEK SMALL BETA
|
||||
0x91 0x221e #INFINITY
|
||||
0x92 0x03c6 #GREEK SMALL PHI
|
||||
0x93 0x00b1 #PLUS-OR-MINUS SIGN
|
||||
0x94 0x00bd #FRACTION 1/2
|
||||
0x95 0x00bc #FRACTION 1/4
|
||||
0x96 0x2248 #ALMOST EQUAL TO
|
||||
0x97 0x00ab #LEFT POINTING GUILLEMET
|
||||
0x98 0x00bb #RIGHT POINTING GUILLEMET
|
||||
0x99 0xfef7 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
|
||||
0x9a 0xfef8 #ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
|
||||
0x9b #UNDEFINED
|
||||
0x9c #UNDEFINED
|
||||
0x9d 0xfefb #ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
|
||||
0x9e 0xfefc #ARABIC LIGATURE LAM WITH ALEF FINAL FORM
|
||||
0x9f #UNDEFINED
|
||||
0xa0 0x00a0 #NON-BREAKING SPACE
|
||||
0xa1 0x00ad #SOFT HYPHEN
|
||||
0xa2 0xfe82 #ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
|
||||
0xa3 0x00a3 #POUND SIGN
|
||||
0xa4 0x00a4 #CURRENCY SIGN
|
||||
0xa5 0xfe84 #ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
|
||||
0xa6 #UNDEFINED
|
||||
0xa7 #UNDEFINED
|
||||
0xa8 0xfe8e #ARABIC LETTER ALEF FINAL FORM
|
||||
0xa9 0xfe8f #ARABIC LETTER BEH ISOLATED FORM
|
||||
0xaa 0xfe95 #ARABIC LETTER TEH ISOLATED FORM
|
||||
0xab 0xfe99 #ARABIC LETTER THEH ISOLATED FORM
|
||||
0xac 0x060c #ARABIC COMMA
|
||||
0xad 0xfe9d #ARABIC LETTER JEEM ISOLATED FORM
|
||||
0xae 0xfea1 #ARABIC LETTER HAH ISOLATED FORM
|
||||
0xaf 0xfea5 #ARABIC LETTER KHAH ISOLATED FORM
|
||||
0xb0 0x0660 #ARABIC-INDIC DIGIT ZERO
|
||||
0xb1 0x0661 #ARABIC-INDIC DIGIT ONE
|
||||
0xb2 0x0662 #ARABIC-INDIC DIGIT TWO
|
||||
0xb3 0x0663 #ARABIC-INDIC DIGIT THREE
|
||||
0xb4 0x0664 #ARABIC-INDIC DIGIT FOUR
|
||||
0xb5 0x0665 #ARABIC-INDIC DIGIT FIVE
|
||||
0xb6 0x0666 #ARABIC-INDIC DIGIT SIX
|
||||
0xb7 0x0667 #ARABIC-INDIC DIGIT SEVEN
|
||||
0xb8 0x0668 #ARABIC-INDIC DIGIT EIGHT
|
||||
0xb9 0x0669 #ARABIC-INDIC DIGIT NINE
|
||||
0xba 0xfed1 #ARABIC LETTER FEH ISOLATED FORM
|
||||
0xbb 0x061b #ARABIC SEMICOLON
|
||||
0xbc 0xfeb1 #ARABIC LETTER SEEN ISOLATED FORM
|
||||
0xbd 0xfeb5 #ARABIC LETTER SHEEN ISOLATED FORM
|
||||
0xbe 0xfeb9 #ARABIC LETTER SAD ISOLATED FORM
|
||||
0xbf 0x061f #ARABIC QUESTION MARK
|
||||
0xc0 0x00a2 #CENT SIGN
|
||||
0xc1 0xfe80 #ARABIC LETTER HAMZA ISOLATED FORM
|
||||
0xc2 0xfe81 #ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
|
||||
0xc3 0xfe83 #ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
|
||||
0xc4 0xfe85 #ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
|
||||
0xc5 0xfeca #ARABIC LETTER AIN FINAL FORM
|
||||
0xc6 0xfe8b #ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
|
||||
0xc7 0xfe8d #ARABIC LETTER ALEF ISOLATED FORM
|
||||
0xc8 0xfe91 #ARABIC LETTER BEH INITIAL FORM
|
||||
0xc9 0xfe93 #ARABIC LETTER TEH MARBUTA ISOLATED FORM
|
||||
0xca 0xfe97 #ARABIC LETTER TEH INITIAL FORM
|
||||
0xcb 0xfe9b #ARABIC LETTER THEH INITIAL FORM
|
||||
0xcc 0xfe9f #ARABIC LETTER JEEM INITIAL FORM
|
||||
0xcd 0xfea3 #ARABIC LETTER HAH INITIAL FORM
|
||||
0xce 0xfea7 #ARABIC LETTER KHAH INITIAL FORM
|
||||
0xcf 0xfea9 #ARABIC LETTER DAL ISOLATED FORM
|
||||
0xd0 0xfeab #ARABIC LETTER THAL ISOLATED FORM
|
||||
0xd1 0xfead #ARABIC LETTER REH ISOLATED FORM
|
||||
0xd2 0xfeaf #ARABIC LETTER ZAIN ISOLATED FORM
|
||||
0xd3 0xfeb3 #ARABIC LETTER SEEN INITIAL FORM
|
||||
0xd4 0xfeb7 #ARABIC LETTER SHEEN INITIAL FORM
|
||||
0xd5 0xfebb #ARABIC LETTER SAD INITIAL FORM
|
||||
0xd6 0xfebf #ARABIC LETTER DAD INITIAL FORM
|
||||
0xd7 0xfec1 #ARABIC LETTER TAH ISOLATED FORM
|
||||
0xd8 0xfec5 #ARABIC LETTER ZAH ISOLATED FORM
|
||||
0xd9 0xfecb #ARABIC LETTER AIN INITIAL FORM
|
||||
0xda 0xfecf #ARABIC LETTER GHAIN INITIAL FORM
|
||||
0xdb 0x00a6 #BROKEN VERTICAL BAR
|
||||
0xdc 0x00ac #NOT SIGN
|
||||
0xdd 0x00f7 #DIVISION SIGN
|
||||
0xde 0x00d7 #MULTIPLICATION SIGN
|
||||
0xdf 0xfec9 #ARABIC LETTER AIN ISOLATED FORM
|
||||
0xe0 0x0640 #ARABIC TATWEEL
|
||||
0xe1 0xfed3 #ARABIC LETTER FEH INITIAL FORM
|
||||
0xe2 0xfed7 #ARABIC LETTER QAF INITIAL FORM
|
||||
0xe3 0xfedb #ARABIC LETTER KAF INITIAL FORM
|
||||
0xe4 0xfedf #ARABIC LETTER LAM INITIAL FORM
|
||||
0xe5 0xfee3 #ARABIC LETTER MEEM INITIAL FORM
|
||||
0xe6 0xfee7 #ARABIC LETTER NOON INITIAL FORM
|
||||
0xe7 0xfeeb #ARABIC LETTER HEH INITIAL FORM
|
||||
0xe8 0xfeed #ARABIC LETTER WAW ISOLATED FORM
|
||||
0xe9 0xfeef #ARABIC LETTER ALEF MAKSURA ISOLATED FORM
|
||||
0xea 0xfef3 #ARABIC LETTER YEH INITIAL FORM
|
||||
0xeb 0xfebd #ARABIC LETTER DAD ISOLATED FORM
|
||||
0xec 0xfecc #ARABIC LETTER AIN MEDIAL FORM
|
||||
0xed 0xfece #ARABIC LETTER GHAIN FINAL FORM
|
||||
0xee 0xfecd #ARABIC LETTER GHAIN ISOLATED FORM
|
||||
0xef 0xfee1 #ARABIC LETTER MEEM ISOLATED FORM
|
||||
0xf0 0xfe7d #ARABIC SHADDA MEDIAL FORM
|
||||
0xf1 0x0651 #ARABIC SHADDAH
|
||||
0xf2 0xfee5 #ARABIC LETTER NOON ISOLATED FORM
|
||||
0xf3 0xfee9 #ARABIC LETTER HEH ISOLATED FORM
|
||||
0xf4 0xfeec #ARABIC LETTER HEH MEDIAL FORM
|
||||
0xf5 0xfef0 #ARABIC LETTER ALEF MAKSURA FINAL FORM
|
||||
0xf6 0xfef2 #ARABIC LETTER YEH FINAL FORM
|
||||
0xf7 0xfed0 #ARABIC LETTER GHAIN MEDIAL FORM
|
||||
0xf8 0xfed5 #ARABIC LETTER QAF ISOLATED FORM
|
||||
0xf9 0xfef5 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
|
||||
0xfa 0xfef6 #ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
|
||||
0xfb 0xfedd #ARABIC LETTER LAM ISOLATED FORM
|
||||
0xfc 0xfed9 #ARABIC LETTER KAF ISOLATED FORM
|
||||
0xfd 0xfef1 #ARABIC LETTER YEH ISOLATED FORM
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff #UNDEFINED
|
||||
256
Data/Encoding/CP865.mapping
Normal file
256
Data/Encoding/CP865.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00a4 #CURRENCY SIGN
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP866.mapping
Normal file
256
Data/Encoding/CP866.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x0410 #CYRILLIC CAPITAL LETTER A
|
||||
0x81 0x0411 #CYRILLIC CAPITAL LETTER BE
|
||||
0x82 0x0412 #CYRILLIC CAPITAL LETTER VE
|
||||
0x83 0x0413 #CYRILLIC CAPITAL LETTER GHE
|
||||
0x84 0x0414 #CYRILLIC CAPITAL LETTER DE
|
||||
0x85 0x0415 #CYRILLIC CAPITAL LETTER IE
|
||||
0x86 0x0416 #CYRILLIC CAPITAL LETTER ZHE
|
||||
0x87 0x0417 #CYRILLIC CAPITAL LETTER ZE
|
||||
0x88 0x0418 #CYRILLIC CAPITAL LETTER I
|
||||
0x89 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
|
||||
0x8a 0x041a #CYRILLIC CAPITAL LETTER KA
|
||||
0x8b 0x041b #CYRILLIC CAPITAL LETTER EL
|
||||
0x8c 0x041c #CYRILLIC CAPITAL LETTER EM
|
||||
0x8d 0x041d #CYRILLIC CAPITAL LETTER EN
|
||||
0x8e 0x041e #CYRILLIC CAPITAL LETTER O
|
||||
0x8f 0x041f #CYRILLIC CAPITAL LETTER PE
|
||||
0x90 0x0420 #CYRILLIC CAPITAL LETTER ER
|
||||
0x91 0x0421 #CYRILLIC CAPITAL LETTER ES
|
||||
0x92 0x0422 #CYRILLIC CAPITAL LETTER TE
|
||||
0x93 0x0423 #CYRILLIC CAPITAL LETTER U
|
||||
0x94 0x0424 #CYRILLIC CAPITAL LETTER EF
|
||||
0x95 0x0425 #CYRILLIC CAPITAL LETTER HA
|
||||
0x96 0x0426 #CYRILLIC CAPITAL LETTER TSE
|
||||
0x97 0x0427 #CYRILLIC CAPITAL LETTER CHE
|
||||
0x98 0x0428 #CYRILLIC CAPITAL LETTER SHA
|
||||
0x99 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
|
||||
0x9a 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0x9b 0x042b #CYRILLIC CAPITAL LETTER YERU
|
||||
0x9c 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0x9d 0x042d #CYRILLIC CAPITAL LETTER E
|
||||
0x9e 0x042e #CYRILLIC CAPITAL LETTER YU
|
||||
0x9f 0x042f #CYRILLIC CAPITAL LETTER YA
|
||||
0xa0 0x0430 #CYRILLIC SMALL LETTER A
|
||||
0xa1 0x0431 #CYRILLIC SMALL LETTER BE
|
||||
0xa2 0x0432 #CYRILLIC SMALL LETTER VE
|
||||
0xa3 0x0433 #CYRILLIC SMALL LETTER GHE
|
||||
0xa4 0x0434 #CYRILLIC SMALL LETTER DE
|
||||
0xa5 0x0435 #CYRILLIC SMALL LETTER IE
|
||||
0xa6 0x0436 #CYRILLIC SMALL LETTER ZHE
|
||||
0xa7 0x0437 #CYRILLIC SMALL LETTER ZE
|
||||
0xa8 0x0438 #CYRILLIC SMALL LETTER I
|
||||
0xa9 0x0439 #CYRILLIC SMALL LETTER SHORT I
|
||||
0xaa 0x043a #CYRILLIC SMALL LETTER KA
|
||||
0xab 0x043b #CYRILLIC SMALL LETTER EL
|
||||
0xac 0x043c #CYRILLIC SMALL LETTER EM
|
||||
0xad 0x043d #CYRILLIC SMALL LETTER EN
|
||||
0xae 0x043e #CYRILLIC SMALL LETTER O
|
||||
0xaf 0x043f #CYRILLIC SMALL LETTER PE
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x0440 #CYRILLIC SMALL LETTER ER
|
||||
0xe1 0x0441 #CYRILLIC SMALL LETTER ES
|
||||
0xe2 0x0442 #CYRILLIC SMALL LETTER TE
|
||||
0xe3 0x0443 #CYRILLIC SMALL LETTER U
|
||||
0xe4 0x0444 #CYRILLIC SMALL LETTER EF
|
||||
0xe5 0x0445 #CYRILLIC SMALL LETTER HA
|
||||
0xe6 0x0446 #CYRILLIC SMALL LETTER TSE
|
||||
0xe7 0x0447 #CYRILLIC SMALL LETTER CHE
|
||||
0xe8 0x0448 #CYRILLIC SMALL LETTER SHA
|
||||
0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA
|
||||
0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xeb 0x044b #CYRILLIC SMALL LETTER YERU
|
||||
0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xed 0x044d #CYRILLIC SMALL LETTER E
|
||||
0xee 0x044e #CYRILLIC SMALL LETTER YU
|
||||
0xef 0x044f #CYRILLIC SMALL LETTER YA
|
||||
0xf0 0x0401 #CYRILLIC CAPITAL LETTER IO
|
||||
0xf1 0x0451 #CYRILLIC SMALL LETTER IO
|
||||
0xf2 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xf3 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xf4 0x0407 #CYRILLIC CAPITAL LETTER YI
|
||||
0xf5 0x0457 #CYRILLIC SMALL LETTER YI
|
||||
0xf6 0x040e #CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xf7 0x045e #CYRILLIC SMALL LETTER SHORT U
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x2116 #NUMERO SIGN
|
||||
0xfd 0x00a4 #CURRENCY SIGN
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP869.mapping
Normal file
256
Data/Encoding/CP869.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 #UNDEFINED
|
||||
0x81 #UNDEFINED
|
||||
0x82 #UNDEFINED
|
||||
0x83 #UNDEFINED
|
||||
0x84 #UNDEFINED
|
||||
0x85 #UNDEFINED
|
||||
0x86 0x0386 #GREEK CAPITAL LETTER ALPHA WITH TONOS
|
||||
0x87 #UNDEFINED
|
||||
0x88 0x00b7 #MIDDLE DOT
|
||||
0x89 0x00ac #NOT SIGN
|
||||
0x8a 0x00a6 #BROKEN BAR
|
||||
0x8b 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x8c 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x8d 0x0388 #GREEK CAPITAL LETTER EPSILON WITH TONOS
|
||||
0x8e 0x2015 #HORIZONTAL BAR
|
||||
0x8f 0x0389 #GREEK CAPITAL LETTER ETA WITH TONOS
|
||||
0x90 0x038a #GREEK CAPITAL LETTER IOTA WITH TONOS
|
||||
0x91 0x03aa #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
|
||||
0x92 0x038c #GREEK CAPITAL LETTER OMICRON WITH TONOS
|
||||
0x93 #UNDEFINED
|
||||
0x94 #UNDEFINED
|
||||
0x95 0x038e #GREEK CAPITAL LETTER UPSILON WITH TONOS
|
||||
0x96 0x03ab #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
|
||||
0x97 0x00a9 #COPYRIGHT SIGN
|
||||
0x98 0x038f #GREEK CAPITAL LETTER OMEGA WITH TONOS
|
||||
0x99 0x00b2 #SUPERSCRIPT TWO
|
||||
0x9a 0x00b3 #SUPERSCRIPT THREE
|
||||
0x9b 0x03ac #GREEK SMALL LETTER ALPHA WITH TONOS
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x03ad #GREEK SMALL LETTER EPSILON WITH TONOS
|
||||
0x9e 0x03ae #GREEK SMALL LETTER ETA WITH TONOS
|
||||
0x9f 0x03af #GREEK SMALL LETTER IOTA WITH TONOS
|
||||
0xa0 0x03ca #GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
||||
0xa1 0x0390 #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
|
||||
0xa2 0x03cc #GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xa3 0x03cd #GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xa4 0x0391 #GREEK CAPITAL LETTER ALPHA
|
||||
0xa5 0x0392 #GREEK CAPITAL LETTER BETA
|
||||
0xa6 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xa7 0x0394 #GREEK CAPITAL LETTER DELTA
|
||||
0xa8 0x0395 #GREEK CAPITAL LETTER EPSILON
|
||||
0xa9 0x0396 #GREEK CAPITAL LETTER ZETA
|
||||
0xaa 0x0397 #GREEK CAPITAL LETTER ETA
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xad 0x0399 #GREEK CAPITAL LETTER IOTA
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x039a #GREEK CAPITAL LETTER KAPPA
|
||||
0xb6 0x039b #GREEK CAPITAL LETTER LAMDA
|
||||
0xb7 0x039c #GREEK CAPITAL LETTER MU
|
||||
0xb8 0x039d #GREEK CAPITAL LETTER NU
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x039e #GREEK CAPITAL LETTER XI
|
||||
0xbe 0x039f #GREEK CAPITAL LETTER OMICRON
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x03a0 #GREEK CAPITAL LETTER PI
|
||||
0xc7 0x03a1 #GREEK CAPITAL LETTER RHO
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xd0 0x03a4 #GREEK CAPITAL LETTER TAU
|
||||
0xd1 0x03a5 #GREEK CAPITAL LETTER UPSILON
|
||||
0xd2 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xd3 0x03a7 #GREEK CAPITAL LETTER CHI
|
||||
0xd4 0x03a8 #GREEK CAPITAL LETTER PSI
|
||||
0xd5 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xd6 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xd7 0x03b2 #GREEK SMALL LETTER BETA
|
||||
0xd8 0x03b3 #GREEK SMALL LETTER GAMMA
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xde 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b6 #GREEK SMALL LETTER ZETA
|
||||
0xe1 0x03b7 #GREEK SMALL LETTER ETA
|
||||
0xe2 0x03b8 #GREEK SMALL LETTER THETA
|
||||
0xe3 0x03b9 #GREEK SMALL LETTER IOTA
|
||||
0xe4 0x03ba #GREEK SMALL LETTER KAPPA
|
||||
0xe5 0x03bb #GREEK SMALL LETTER LAMDA
|
||||
0xe6 0x03bc #GREEK SMALL LETTER MU
|
||||
0xe7 0x03bd #GREEK SMALL LETTER NU
|
||||
0xe8 0x03be #GREEK SMALL LETTER XI
|
||||
0xe9 0x03bf #GREEK SMALL LETTER OMICRON
|
||||
0xea 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xeb 0x03c1 #GREEK SMALL LETTER RHO
|
||||
0xec 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xed 0x03c2 #GREEK SMALL LETTER FINAL SIGMA
|
||||
0xee 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xef 0x0384 #GREEK TONOS
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x03c5 #GREEK SMALL LETTER UPSILON
|
||||
0xf3 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xf4 0x03c7 #GREEK SMALL LETTER CHI
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x03c8 #GREEK SMALL LETTER PSI
|
||||
0xf7 0x0385 #GREEK DIALYTIKA TONOS
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x03c9 #GREEK SMALL LETTER OMEGA
|
||||
0xfb 0x03cb #GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
0xfc 0x03b0 #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
|
||||
0xfd 0x03ce #GREEK SMALL LETTER OMEGA WITH TONOS
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
||||
256
Data/Encoding/CP874.mapping
Normal file
256
Data/Encoding/CP874.mapping
Normal file
@ -0,0 +1,256 @@
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 #UNDEFINED
|
||||
0x82 #UNDEFINED
|
||||
0x83 #UNDEFINED
|
||||
0x84 #UNDEFINED
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 #UNDEFINED
|
||||
0x87 #UNDEFINED
|
||||
0x88 #UNDEFINED
|
||||
0x89 #UNDEFINED
|
||||
0x8A #UNDEFINED
|
||||
0x8B #UNDEFINED
|
||||
0x8C #UNDEFINED
|
||||
0x8D #UNDEFINED
|
||||
0x8E #UNDEFINED
|
||||
0x8F #UNDEFINED
|
||||
0x90 #UNDEFINED
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 #UNDEFINED
|
||||
0x99 #UNDEFINED
|
||||
0x9A #UNDEFINED
|
||||
0x9B #UNDEFINED
|
||||
0x9C #UNDEFINED
|
||||
0x9D #UNDEFINED
|
||||
0x9E #UNDEFINED
|
||||
0x9F #UNDEFINED
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x0E01 #THAI CHARACTER KO KAI
|
||||
0xA2 0x0E02 #THAI CHARACTER KHO KHAI
|
||||
0xA3 0x0E03 #THAI CHARACTER KHO KHUAT
|
||||
0xA4 0x0E04 #THAI CHARACTER KHO KHWAI
|
||||
0xA5 0x0E05 #THAI CHARACTER KHO KHON
|
||||
0xA6 0x0E06 #THAI CHARACTER KHO RAKHANG
|
||||
0xA7 0x0E07 #THAI CHARACTER NGO NGU
|
||||
0xA8 0x0E08 #THAI CHARACTER CHO CHAN
|
||||
0xA9 0x0E09 #THAI CHARACTER CHO CHING
|
||||
0xAA 0x0E0A #THAI CHARACTER CHO CHANG
|
||||
0xAB 0x0E0B #THAI CHARACTER SO SO
|
||||
0xAC 0x0E0C #THAI CHARACTER CHO CHOE
|
||||
0xAD 0x0E0D #THAI CHARACTER YO YING
|
||||
0xAE 0x0E0E #THAI CHARACTER DO CHADA
|
||||
0xAF 0x0E0F #THAI CHARACTER TO PATAK
|
||||
0xB0 0x0E10 #THAI CHARACTER THO THAN
|
||||
0xB1 0x0E11 #THAI CHARACTER THO NANGMONTHO
|
||||
0xB2 0x0E12 #THAI CHARACTER THO PHUTHAO
|
||||
0xB3 0x0E13 #THAI CHARACTER NO NEN
|
||||
0xB4 0x0E14 #THAI CHARACTER DO DEK
|
||||
0xB5 0x0E15 #THAI CHARACTER TO TAO
|
||||
0xB6 0x0E16 #THAI CHARACTER THO THUNG
|
||||
0xB7 0x0E17 #THAI CHARACTER THO THAHAN
|
||||
0xB8 0x0E18 #THAI CHARACTER THO THONG
|
||||
0xB9 0x0E19 #THAI CHARACTER NO NU
|
||||
0xBA 0x0E1A #THAI CHARACTER BO BAIMAI
|
||||
0xBB 0x0E1B #THAI CHARACTER PO PLA
|
||||
0xBC 0x0E1C #THAI CHARACTER PHO PHUNG
|
||||
0xBD 0x0E1D #THAI CHARACTER FO FA
|
||||
0xBE 0x0E1E #THAI CHARACTER PHO PHAN
|
||||
0xBF 0x0E1F #THAI CHARACTER FO FAN
|
||||
0xC0 0x0E20 #THAI CHARACTER PHO SAMPHAO
|
||||
0xC1 0x0E21 #THAI CHARACTER MO MA
|
||||
0xC2 0x0E22 #THAI CHARACTER YO YAK
|
||||
0xC3 0x0E23 #THAI CHARACTER RO RUA
|
||||
0xC4 0x0E24 #THAI CHARACTER RU
|
||||
0xC5 0x0E25 #THAI CHARACTER LO LING
|
||||
0xC6 0x0E26 #THAI CHARACTER LU
|
||||
0xC7 0x0E27 #THAI CHARACTER WO WAEN
|
||||
0xC8 0x0E28 #THAI CHARACTER SO SALA
|
||||
0xC9 0x0E29 #THAI CHARACTER SO RUSI
|
||||
0xCA 0x0E2A #THAI CHARACTER SO SUA
|
||||
0xCB 0x0E2B #THAI CHARACTER HO HIP
|
||||
0xCC 0x0E2C #THAI CHARACTER LO CHULA
|
||||
0xCD 0x0E2D #THAI CHARACTER O ANG
|
||||
0xCE 0x0E2E #THAI CHARACTER HO NOKHUK
|
||||
0xCF 0x0E2F #THAI CHARACTER PAIYANNOI
|
||||
0xD0 0x0E30 #THAI CHARACTER SARA A
|
||||
0xD1 0x0E31 #THAI CHARACTER MAI HAN-AKAT
|
||||
0xD2 0x0E32 #THAI CHARACTER SARA AA
|
||||
0xD3 0x0E33 #THAI CHARACTER SARA AM
|
||||
0xD4 0x0E34 #THAI CHARACTER SARA I
|
||||
0xD5 0x0E35 #THAI CHARACTER SARA II
|
||||
0xD6 0x0E36 #THAI CHARACTER SARA UE
|
||||
0xD7 0x0E37 #THAI CHARACTER SARA UEE
|
||||
0xD8 0x0E38 #THAI CHARACTER SARA U
|
||||
0xD9 0x0E39 #THAI CHARACTER SARA UU
|
||||
0xDA 0x0E3A #THAI CHARACTER PHINTHU
|
||||
0xDB #UNDEFINED
|
||||
0xDC #UNDEFINED
|
||||
0xDD #UNDEFINED
|
||||
0xDE #UNDEFINED
|
||||
0xDF 0x0E3F #THAI CURRENCY SYMBOL BAHT
|
||||
0xE0 0x0E40 #THAI CHARACTER SARA E
|
||||
0xE1 0x0E41 #THAI CHARACTER SARA AE
|
||||
0xE2 0x0E42 #THAI CHARACTER SARA O
|
||||
0xE3 0x0E43 #THAI CHARACTER SARA AI MAIMUAN
|
||||
0xE4 0x0E44 #THAI CHARACTER SARA AI MAIMALAI
|
||||
0xE5 0x0E45 #THAI CHARACTER LAKKHANGYAO
|
||||
0xE6 0x0E46 #THAI CHARACTER MAIYAMOK
|
||||
0xE7 0x0E47 #THAI CHARACTER MAITAIKHU
|
||||
0xE8 0x0E48 #THAI CHARACTER MAI EK
|
||||
0xE9 0x0E49 #THAI CHARACTER MAI THO
|
||||
0xEA 0x0E4A #THAI CHARACTER MAI TRI
|
||||
0xEB 0x0E4B #THAI CHARACTER MAI CHATTAWA
|
||||
0xEC 0x0E4C #THAI CHARACTER THANTHAKHAT
|
||||
0xED 0x0E4D #THAI CHARACTER NIKHAHIT
|
||||
0xEE 0x0E4E #THAI CHARACTER YAMAKKAN
|
||||
0xEF 0x0E4F #THAI CHARACTER FONGMAN
|
||||
0xF0 0x0E50 #THAI DIGIT ZERO
|
||||
0xF1 0x0E51 #THAI DIGIT ONE
|
||||
0xF2 0x0E52 #THAI DIGIT TWO
|
||||
0xF3 0x0E53 #THAI DIGIT THREE
|
||||
0xF4 0x0E54 #THAI DIGIT FOUR
|
||||
0xF5 0x0E55 #THAI DIGIT FIVE
|
||||
0xF6 0x0E56 #THAI DIGIT SIX
|
||||
0xF7 0x0E57 #THAI DIGIT SEVEN
|
||||
0xF8 0x0E58 #THAI DIGIT EIGHT
|
||||
0xF9 0x0E59 #THAI DIGIT NINE
|
||||
0xFA 0x0E5A #THAI CHARACTER ANGKHANKHU
|
||||
0xFB 0x0E5B #THAI CHARACTER KHOMUT
|
||||
0xFC #UNDEFINED
|
||||
0xFD #UNDEFINED
|
||||
0xFE #UNDEFINED
|
||||
0xFF #UNDEFINED
|
||||
7941
Data/Encoding/CP932.xml
Normal file
7941
Data/Encoding/CP932.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ import Control.Monad.Identity
|
||||
data EncodingException
|
||||
= HasNoRepresentation Char -- ^ Thrown if a specific character
|
||||
-- is not representable in an encoding.
|
||||
deriving (Eq,Show,Typeable)
|
||||
deriving (Eq,Ord,Show,Read,Typeable)
|
||||
|
||||
instance Exception EncodingException
|
||||
|
||||
@ -25,6 +25,6 @@ data DecodingException
|
||||
| OutOfRange -- ^ the decoded value was out of the unicode range
|
||||
| IllegalRepresentation [Word8] -- ^ The character sequence encodes a
|
||||
-- character, but is illegal.
|
||||
deriving (Eq,Show,Typeable)
|
||||
deriving (Eq,Ord,Show,Read,Typeable)
|
||||
|
||||
instance Exception DecodingException
|
||||
|
||||
@ -1,236 +0,0 @@
|
||||
{-# LANGUAGE CPP,DeriveDataTypeable #-}
|
||||
{- | GB18030 is a chinese character encoding that is mandatory in china (if you
|
||||
- don\'t implement it, you\'re not allowed to sell your software there).
|
||||
-}
|
||||
|
||||
module Data.Encoding.GB18030
|
||||
(GB18030(..))
|
||||
where
|
||||
|
||||
import Control.Throws
|
||||
import Data.Char (chr,ord)
|
||||
import Data.Word
|
||||
import Data.Bits
|
||||
import Data.Encoding.Base
|
||||
import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ByteSink
|
||||
import Data.Encoding.Exception
|
||||
import Data.ByteString (ByteString)
|
||||
import qualified Data.ByteString as BS
|
||||
import Data.Typeable
|
||||
|
||||
#if __GLASGOW_HASKELL__>=608
|
||||
import Data.ByteString.Unsafe (unsafeIndex)
|
||||
#else
|
||||
import Data.ByteString.Base (unsafeIndex)
|
||||
#endif
|
||||
|
||||
import Data.Encoding.GB18030Data
|
||||
|
||||
data GB18030 = GB18030 deriving (Eq,Show,Typeable)
|
||||
|
||||
instance Encoding GB18030 where
|
||||
decodeChar _ = do
|
||||
w1 <- fetchWord8
|
||||
case () of
|
||||
_
|
||||
| w1 <= 0x80 -> return (chr $ fromIntegral w1) -- it's ascii
|
||||
| w1 <= 0xFE -> do
|
||||
w2 <- fetchWord8
|
||||
case () of
|
||||
_
|
||||
| w2 < 0x30 -> throwException (IllegalCharacter w2)
|
||||
| w2 <= 0x39 -> do
|
||||
w3 <- fetchWord8
|
||||
case () of
|
||||
_
|
||||
| w3 < 0x81 -> throwException (IllegalCharacter w3)
|
||||
| w3 <= 0xFE -> do
|
||||
w4 <- fetchWord8
|
||||
case () of
|
||||
_
|
||||
| w4 < 0x30 -> throwException (IllegalCharacter w4)
|
||||
| w4 <= 0x39 -> decodeGBFour $ linear w1 w2 w3 w4
|
||||
| otherwise -> throwException (IllegalCharacter w4)
|
||||
| otherwise -> throwException (IllegalCharacter w3)
|
||||
| w2 <= 0x7E -> return $ decodeGBTwo $ linear2 w1 w2
|
||||
| w2 == 0x7F -> throwException (IllegalCharacter w2)
|
||||
| w2 <= 0xFE -> return $ decodeGBTwo $ linear2 w1 w2
|
||||
| otherwise -> throwException (IllegalCharacter w2)
|
||||
| otherwise -> throwException (IllegalCharacter w1)
|
||||
{- How this works: The nested if-structures form an binary tree over the
|
||||
- encoding range.
|
||||
-}
|
||||
encodeChar _ ch = if ch<='\x4946' -- 1
|
||||
then (if ch<='\x4055' -- 2
|
||||
then (if ch<='\x2E80' -- 3
|
||||
then (if ch<='\x200F' -- 4
|
||||
then (if ch<'\x0452'
|
||||
then arr 0x0000 arr1
|
||||
else range range1)
|
||||
else (if ch<'\x2643'
|
||||
then arr 0x2010 arr2
|
||||
else range range2))
|
||||
else (if ch<='\x3917' -- 4
|
||||
then (if ch<'\x361B'
|
||||
then arr 0x2E81 arr3
|
||||
else range range3)
|
||||
else (if ch<'\x3CE1'
|
||||
then arr 0x3918 arr4
|
||||
else range range4)))
|
||||
else (if ch<='\x464B' -- 3
|
||||
then (if ch<='\x4336' -- 4
|
||||
then (if ch<'\x4160'
|
||||
then arr 0x4056 arr5
|
||||
else range range5)
|
||||
else (if ch<'\x44D7'
|
||||
then arr 0x4337 arr6
|
||||
else range range6))
|
||||
else (if ch<'\x478E'
|
||||
then arr 0x464C arr7
|
||||
else range range7)))
|
||||
else (if ch<='\xF92B' -- 2
|
||||
then (if ch<='\xD7FF' -- 3
|
||||
then (if ch<='\x4C76' -- 4
|
||||
then (if ch<'\x49B8'
|
||||
then arr 0x4947 arr8
|
||||
else range range8)
|
||||
else (if ch<'\x9FA6'
|
||||
then arr 0x4C77 arr9
|
||||
else range range9))
|
||||
else (if ch<'\xE865'
|
||||
then arr 0xD800 arr10
|
||||
else range range10))
|
||||
else (if ch<='\xFFFF' -- 3
|
||||
then (if ch<='\xFE2F' -- 4
|
||||
then (if ch<'\xFA2A'
|
||||
then arr 0xF92C arr11
|
||||
else range range11)
|
||||
else (if ch<'\xFFE6'
|
||||
then arr 0xFE30 arr12
|
||||
else range range12))
|
||||
else (if ch<='\x10FFFF' -- 4
|
||||
then range range13
|
||||
else throwException (HasNoRepresentation ch))))
|
||||
where
|
||||
range r = let (w1,w2,w3,w4) = delinear (ord ch + r)
|
||||
in pushWord8 w1 >> pushWord8 w2 >> pushWord8 w3 >> pushWord8 w4
|
||||
arr off a = let ind = (ord ch - off)*5
|
||||
w1 = unsafeIndex a (ind+1)
|
||||
w2 = unsafeIndex a (ind+2)
|
||||
w3 = unsafeIndex a (ind+3)
|
||||
w4 = unsafeIndex a (ind+4)
|
||||
in do
|
||||
pushWord8 w1
|
||||
case unsafeIndex a ind of
|
||||
1 -> return ()
|
||||
2 -> pushWord8 w2
|
||||
3 -> pushWord8 w2 >> pushWord8 w3
|
||||
4 -> pushWord8 w2 >> pushWord8 w3 >> pushWord8 w4
|
||||
|
||||
linear :: Word8 -> Word8 -> Word8 -> Word8 -> Int
|
||||
linear w1 w2 w3 w4
|
||||
= (fromIntegral (w4-0x30))
|
||||
+ (fromIntegral (w3-0x81))*10
|
||||
+ (fromIntegral (w2-0x30))*1260
|
||||
+ (fromIntegral (w1-0x81))*12600
|
||||
|
||||
linear2 :: Word8 -> Word8 -> Int
|
||||
linear2 w1 w2 = (fromIntegral (w2 - (if w2<=0x7E
|
||||
then 0x40
|
||||
else 0x41)))
|
||||
+ (fromIntegral (w1-0x81))*190
|
||||
|
||||
delinear :: Int -> (Word8,Word8,Word8,Word8)
|
||||
delinear n = let
|
||||
(w1,n1) = n `divMod` 12600
|
||||
(w2,n2) = n1 `divMod` 1260
|
||||
(w3,n3) = n2 `divMod` 10
|
||||
w4 = n3
|
||||
in (fromIntegral w1+0x81
|
||||
,fromIntegral w2+0x30
|
||||
,fromIntegral w3+0x81
|
||||
,fromIntegral w4+0x30)
|
||||
|
||||
decodeGBTwo :: Int -> Char
|
||||
decodeGBTwo n = let
|
||||
rn = n*2
|
||||
w1 = unsafeIndex rrarr rn
|
||||
w2 = unsafeIndex rrarr (rn+1)
|
||||
in chr $ ((fromIntegral w1) `shiftL` 8) .|. (fromIntegral w2)
|
||||
|
||||
decodeGBFour :: ByteSource m => Int -> m Char
|
||||
decodeGBFour v = if v<=17858 -- 1
|
||||
then (if v<=15582 -- 2
|
||||
then (if v<=11328 -- 3
|
||||
then (if v<=7921 -- 4
|
||||
then (if v<820
|
||||
then arr 0 rarr1
|
||||
else range range1)
|
||||
else (if v<9219
|
||||
then arr 7922 rarr2
|
||||
else range range2))
|
||||
else (if v<=13737 -- 4
|
||||
then (if v<12973
|
||||
then arr 11329 rarr3
|
||||
else range range3)
|
||||
else (if v<14698
|
||||
then arr 13738 rarr4
|
||||
else range range4)))
|
||||
else (if v<=17101 -- 3
|
||||
then (if v<=16317 -- 4
|
||||
then (if v<15847
|
||||
then arr 15583 rarr5
|
||||
else range range5)
|
||||
else (if v<16729
|
||||
then arr 16318 rarr6
|
||||
else range range6))
|
||||
else (if v<17418
|
||||
then arr 17102 rarr7
|
||||
else range range7)))
|
||||
else (if v<=37844 -- 2
|
||||
then (if v<=33468 -- 3
|
||||
then (if v<=18663 -- 4
|
||||
then (if v<17961
|
||||
then arr 17859 rarr8
|
||||
else range range8)
|
||||
else (if v<19043
|
||||
then arr 18664 rarr9
|
||||
else range range9))
|
||||
else (if v<33550
|
||||
then arr 33469 rarr10
|
||||
else range range10))
|
||||
else (if v<=39419 -- 3
|
||||
then (if v<=39107 -- 4
|
||||
then (if v<38078
|
||||
then arr 37845 rarr11
|
||||
else range range11)
|
||||
else (if v<39394
|
||||
then arr 39108 rarr12
|
||||
else range range12))
|
||||
else (if v<=1237575 && v>=189000
|
||||
then range range13
|
||||
else throwException OutOfRange)))
|
||||
where
|
||||
arr off a = let
|
||||
v' = (v-off)*2
|
||||
w1 = unsafeIndex a v'
|
||||
w2 = unsafeIndex a (v'+1)
|
||||
in return $ chr $ ((fromIntegral w1) `shiftL` 8)
|
||||
.|. (fromIntegral w2)
|
||||
range r = return $ chr (v-r)
|
||||
|
||||
range1,range2,range3,range4,range5,range6,range7,range8,range9,range10,range11,range12,range13 :: Int
|
||||
range1 = -286
|
||||
range2 = -576
|
||||
range3 = -878
|
||||
range4 = -887
|
||||
range5 = -889
|
||||
range6 = -894
|
||||
range7 = -900
|
||||
range8 = -911
|
||||
range9 = -21827
|
||||
range10 = -25943
|
||||
range11 = -25964
|
||||
range12 = -26116
|
||||
range13 = 123464
|
||||
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE characterMapping SYSTEM "http://www.unicode.org/unicode/reports/tr22/CharacterMapping.dtd">
|
||||
<characterMapping id="gb-18030-2000" version="3">
|
||||
<characterMapping
|
||||
id="gb-18030-2000" version="3"
|
||||
description="GB18030 is a chinese character encoding that is mandatory in china (if you - don't implement it, you're not allowed to sell your software there).">
|
||||
<history>
|
||||
<modified version="3" date="2001-02-21">
|
||||
0x80 appears to be a valid (and unassigned) single-byte code, added to the validity.
|
||||
File diff suppressed because one or more lines are too long
@ -1,116 +0,0 @@
|
||||
{- This module is used to create a haskell file with static address-arrays in it -}
|
||||
|
||||
module Data.Encoding.Helper.Data where
|
||||
|
||||
import Data.Char (ord)
|
||||
import Data.Word (Word8)
|
||||
import Data.Ord (comparing)
|
||||
import Data.Bits (shiftR)
|
||||
import Data.List (sortBy,genericLength)
|
||||
import Data.Encoding.Helper.XML
|
||||
|
||||
linear :: Word8 -> Word8 -> Word8 -> Word8 -> Int
|
||||
linear w1 w2 w3 w4
|
||||
= (fromIntegral (w4-0x30))
|
||||
+ (fromIntegral (w3-0x81))*10
|
||||
+ (fromIntegral (w2-0x30))*1260
|
||||
+ (fromIntegral (w1-0x81))*12600
|
||||
|
||||
linear2 :: Word8 -> Word8 -> Int
|
||||
linear2 w1 w2 = (fromIntegral (w2 - (if w2<=0x7E
|
||||
then 0x40
|
||||
else 0x41)))
|
||||
+ (fromIntegral (w1-0x81))*190
|
||||
|
||||
createStandardModule :: IO ()
|
||||
createStandardModule = do
|
||||
let fn = "gb-18030-2000.xml"
|
||||
str <- readFile fn
|
||||
writeFile "Data/Encoding/GB18030Data.hs" $ createModuleFromFile fn str standardRanges standardRRanges
|
||||
|
||||
standardRanges =
|
||||
[('\x0000','\x0451')
|
||||
,('\x2010','\x2642')
|
||||
,('\x2E81','\x361A')
|
||||
,('\x3918','\x3CE0')
|
||||
,('\x4056','\x415F')
|
||||
,('\x4337','\x44D6')
|
||||
,('\x464C','\x478D')
|
||||
,('\x4947','\x49B7')
|
||||
,('\x4C77','\x9FA5')
|
||||
,('\xD800','\xE864')
|
||||
,('\xF92C','\xFA29')
|
||||
,('\xFE30','\xFFE5')
|
||||
]
|
||||
|
||||
standardRRanges =
|
||||
[( 0, 819)
|
||||
,( 7922, 9218)
|
||||
,(11329,12972)
|
||||
,(13738,14697)
|
||||
,(15583,15846)
|
||||
,(16318,16728)
|
||||
,(17102,17417)
|
||||
,(17859,17960)
|
||||
,(18664,19042)
|
||||
,(33469,33549)
|
||||
,(37845,38077)
|
||||
,(39108,39393)
|
||||
,(39420,188999)]
|
||||
|
||||
createModuleFromFile :: String -> String -> [(Char,Char)] -> [(Int,Int)] -> String
|
||||
createModuleFromFile name str = createModule (readDecodeTable name str)
|
||||
|
||||
createModule :: [(Char,[Word8])] -> [(Char,Char)] -> [(Int,Int)] -> String
|
||||
createModule mp ranges rranges = unlines $
|
||||
["{-# LANGUAGE CPP,MagicHash #-}"
|
||||
,"module Data.Encoding.GB18030Data where"
|
||||
,""
|
||||
,"import Data.ByteString(ByteString)"
|
||||
,"#if __GLASGOW_HASKELL__>=608"
|
||||
,"import Data.ByteString.Unsafe(unsafePackAddressLen)"
|
||||
,"#else"
|
||||
,"import Data.ByteString.Base(unsafePackAddressLen)"
|
||||
,"#endif"
|
||||
,"import System.IO.Unsafe(unsafePerformIO)"]
|
||||
++ (createAddrVars "arr" (map (uncurry $ createAddr mp) ranges))
|
||||
++ (createAddrVars "rarr" (map (uncurry $ createRAddr4 mp) rranges))
|
||||
++ (createAddrVar "rrarr" (createRAddr2 mp))
|
||||
|
||||
createAddrVars :: String -> [[Word8]] -> [String]
|
||||
createAddrVars base conts = concatMap (\(n,cont) ->
|
||||
createAddrVar (base++show n) cont) (zip [1..] conts)
|
||||
|
||||
createAddrVar :: String -> [Word8] -> [String]
|
||||
createAddrVar name cont =
|
||||
[""
|
||||
,name++" :: ByteString"
|
||||
,name++" = unsafePerformIO $ unsafePackAddressLen "++show (length cont)++" \""++addr cont++"\"#"
|
||||
]
|
||||
|
||||
createAddr :: [(Char,[Word8])] -> Char -> Char -> [Word8]
|
||||
createAddr mp f t = let
|
||||
lst = sortBy (comparing fst) [el | el@(ch,_) <- mp, ch>=f, ch<=t]
|
||||
in concatMap (\(ch,seq) -> let
|
||||
l = length seq
|
||||
in [fromIntegral l]++seq++(replicate (4-l) 0)) lst
|
||||
|
||||
createRAddr2 :: [(Char,[Word8])] -> [Word8]
|
||||
createRAddr2 mp = let
|
||||
lst = sortBy (comparing snd)
|
||||
[ (ch,v) | (ch,[w1,w2]) <- mp,let v = linear2 w1 w2]
|
||||
in concatMap (\(ch,_) -> let i = ord ch
|
||||
in [fromIntegral (i `shiftR` 8)
|
||||
,fromIntegral i]) lst
|
||||
|
||||
createRAddr4 :: [(Char,[Word8])] -> Int -> Int -> [Word8]
|
||||
createRAddr4 mp f t = let
|
||||
lst = sortBy (comparing snd)
|
||||
[ (ch,v) | (ch,[w1,w2,w3,w4]) <- mp,
|
||||
let v = linear w1 w2 w3 w4, v>=f, v<=t ]
|
||||
in concatMap (\(ch,_) -> let i = ord ch
|
||||
in [fromIntegral (i `shiftR` 8)
|
||||
,fromIntegral i]) lst
|
||||
|
||||
addr :: [Word8] -> String
|
||||
addr = concatMap (\w -> "\\"++show w)
|
||||
@ -1,75 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.Helper.Template where
|
||||
|
||||
import Data.Encoding.Base
|
||||
import Data.Char
|
||||
import Data.Maybe (mapMaybe)
|
||||
import Data.Map as Map (fromList,lookup)
|
||||
import Data.Array
|
||||
import Language.Haskell.TH
|
||||
|
||||
makeISOInstance :: String -> FilePath -> Q [Dec]
|
||||
makeISOInstance name file = do
|
||||
let rname = mkName name
|
||||
trans <- runIO (readTranslation file)
|
||||
mp <- encodingMap (validTranslations trans)
|
||||
arr <- decodingArray (fillTranslations trans)
|
||||
return [ DataD [] rname [] [NormalC rname []] [''Show]
|
||||
, InstanceD [] (AppT (ConT ''Encoding) (ConT rname))
|
||||
[FunD 'encodeChar
|
||||
[Clause [WildP] (NormalB $ AppE (VarE 'encodeWithMap) (VarE $ mkName "mp"))
|
||||
[ValD (VarP $ mkName "mp") (NormalB mp) []]
|
||||
]
|
||||
,FunD 'decodeChar
|
||||
[Clause [WildP] (NormalB $ AppE (VarE 'decodeWithArray) (VarE $ mkName "arr"))
|
||||
[ValD (VarP $ mkName "arr") (NormalB arr) []]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
createCharArray :: [(Integer,Maybe Char)] -> Integer -> Integer -> Q Exp
|
||||
createCharArray lst = createArray (map (\(x,y) -> (x,case y of
|
||||
Nothing -> ConE 'Nothing
|
||||
Just c -> AppE (ConE 'Just) (LitE $ CharL c))
|
||||
) lst)
|
||||
|
||||
|
||||
createArray :: [(Integer,Exp)] -> Integer -> Integer -> Q Exp
|
||||
createArray lst from to = return $ AppE
|
||||
(AppE
|
||||
(VarE 'array)
|
||||
(TupE [LitE $ IntegerL from,LitE $ IntegerL to]))
|
||||
(ListE [ TupE [LitE $ IntegerL x,y]
|
||||
| (x,y) <- lst ])
|
||||
|
||||
decodingArray :: [(Integer,Maybe Char)] -> Q Exp
|
||||
decodingArray trans = createCharArray trans 0 255
|
||||
|
||||
encodingMap :: [(Integer,Char)] -> Q Exp
|
||||
encodingMap trans = return $ AppE
|
||||
(VarE 'fromList)
|
||||
(ListE [ TupE [LitE $ CharL to,LitE $ IntegerL from]
|
||||
| (from,to) <- trans])
|
||||
|
||||
readTranslation :: FilePath -> IO [(Integer,Maybe Char)]
|
||||
readTranslation file = do
|
||||
cont <- readFile file
|
||||
return $ mapMaybe (\ln -> case ln of
|
||||
[] -> Nothing
|
||||
('#':xs) -> Nothing
|
||||
_ -> case words ln of
|
||||
(src:"#UNDEFINED":_) -> Just (read src,Nothing) -- XXX: Find a better way to handle this
|
||||
(src:trg:_) -> Just (read src,Just $ chr $ read trg)
|
||||
_ -> Nothing
|
||||
) (lines cont)
|
||||
|
||||
fillTranslations :: [(Integer,Maybe Char)] -> [(Integer,Maybe Char)]
|
||||
fillTranslations = fillTranslations' (-1)
|
||||
where
|
||||
fillTranslations' n ((n',c):cs) = (map (\i -> (i,Nothing)) [n+1..n'-1])++((n',c):fillTranslations' n' cs)
|
||||
fillTranslations' n [] = map (\i -> (i,Nothing)) [n+1..255]
|
||||
|
||||
validTranslations :: [(Integer,Maybe Char)] -> [(Integer,Char)]
|
||||
validTranslations = mapMaybe (\(n,mc) -> case mc of
|
||||
Nothing -> Nothing
|
||||
Just c -> Just (n,c))
|
||||
@ -1,41 +0,0 @@
|
||||
module Data.Encoding.Helper.XML where
|
||||
|
||||
import Data.Char
|
||||
import Data.List (find)
|
||||
import Data.Word
|
||||
import Data.Maybe (mapMaybe)
|
||||
import Text.XML.HaXml.Parse
|
||||
import Text.XML.HaXml.Types
|
||||
import Text.XML.HaXml.Verbatim
|
||||
import Numeric
|
||||
|
||||
readDecodeTable :: String -> String -> [(Char,[Word8])]
|
||||
readDecodeTable name str = let
|
||||
Document _ _ (Elem root_name _ conts) _ = xmlParse name str
|
||||
in concat $ mapMaybe findAssignments conts
|
||||
|
||||
findAssignments :: Content i -> Maybe [(Char,[Word8])]
|
||||
findAssignments (CElem (Elem "assignments" _ conts) _)
|
||||
= Just $ mapMaybe findAssignment conts
|
||||
findAssignments _ = Nothing
|
||||
|
||||
findAssignment :: Content i -> Maybe (Char,[Word8])
|
||||
findAssignment (CElem (Elem "a" attrs _) _) = do
|
||||
u <- lookup "u" attrs
|
||||
b <- lookup "b" attrs
|
||||
return (chr $ readHexInt (showAttValue u),parseBinary b)
|
||||
findAssignment _ = Nothing
|
||||
|
||||
parseBinary :: AttValue -> [Word8]
|
||||
parseBinary val = map (fromIntegral.readHexInt) (words (showAttValue val))
|
||||
|
||||
showAttValue :: AttValue -> String
|
||||
showAttValue (AttValue lst) = concat $ map (\el -> case el of
|
||||
Left str -> str
|
||||
Right ref -> verbatim ref) lst
|
||||
|
||||
readHexInt :: String -> Int
|
||||
readHexInt str = case find (\x -> snd x == "") (readHex str) of
|
||||
Nothing -> error "Not a hex"
|
||||
Just (x,_) -> x
|
||||
|
||||
60
Data/Encoding/ISO2022.hs
Normal file
60
Data/Encoding/ISO2022.hs
Normal file
@ -0,0 +1,60 @@
|
||||
module Data.Encoding.ISO2022 where
|
||||
|
||||
import Data.Encoding.Base
|
||||
import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ByteSink
|
||||
import Data.Encoding.Exception
|
||||
import Data.Encoding.ASCII
|
||||
|
||||
import Data.Word
|
||||
import Control.Throws
|
||||
|
||||
class ISO2022 e where
|
||||
readEscape :: ByteSource m => e -> m (Maybe DynEncoding)
|
||||
encodingForChar :: e -> Char -> Maybe (DynEncoding,[Word8])
|
||||
|
||||
encodeCharISO2022 :: (ISO2022 e,ByteSink m) => e -> Char -> m ()
|
||||
encodeCharISO2022 e c = case encodingForChar e c of
|
||||
Nothing -> throwException (HasNoRepresentation c)
|
||||
Just (enc,esc) -> do
|
||||
mapM_ pushWord8 esc
|
||||
encodeChar enc c
|
||||
|
||||
decodeCharISO2022 :: (ISO2022 e,ByteSource m) => e -> m Char
|
||||
decodeCharISO2022 e = do
|
||||
enc <- readEscape e
|
||||
case enc of
|
||||
Nothing -> decodeChar ASCII
|
||||
Just renc -> decodeChar renc
|
||||
|
||||
encodeISO2022 :: (ISO2022 e,ByteSink m) => e -> String -> m ()
|
||||
encodeISO2022 e = encode' (DynEncoding ASCII)
|
||||
where
|
||||
encode' _ [] = return ()
|
||||
encode' enc (c:cs) = case encodingForChar e c of
|
||||
Nothing -> throwException (HasNoRepresentation c)
|
||||
Just (nenc,esc)
|
||||
| enc==nenc -> do
|
||||
encodeChar enc c
|
||||
encode' enc cs
|
||||
| otherwise -> do
|
||||
mapM_ pushWord8 esc
|
||||
encodeChar nenc c
|
||||
encode' nenc cs
|
||||
|
||||
decodeISO2022 :: (ISO2022 e,ByteSource m) => e -> m String
|
||||
decodeISO2022 e = decode' (DynEncoding ASCII)
|
||||
where
|
||||
decode' enc = do
|
||||
empty <- sourceEmpty
|
||||
if empty
|
||||
then return []
|
||||
else (do
|
||||
nenc <- readEscape e
|
||||
case nenc of
|
||||
Just renc -> decode' renc
|
||||
Nothing -> do
|
||||
c <- decodeChar enc
|
||||
cs <- decode' enc
|
||||
return (c:cs)
|
||||
)
|
||||
51
Data/Encoding/ISO2022JP.hs
Normal file
51
Data/Encoding/ISO2022JP.hs
Normal file
@ -0,0 +1,51 @@
|
||||
{-# LANGUAGE DeriveDataTypeable #-}
|
||||
{- | Implements the japanese character encoding ISO 2022-JP.
|
||||
See http://tools.ietf.org/html/rfc1468 for reference.
|
||||
-}
|
||||
module Data.Encoding.ISO2022JP where
|
||||
|
||||
import Data.Typeable
|
||||
|
||||
import Data.Encoding.Base
|
||||
import Data.Encoding.Exception
|
||||
import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ISO2022
|
||||
import Data.Encoding.ASCII
|
||||
import Data.Encoding.JISX0201
|
||||
import Data.Encoding.JISX0208
|
||||
|
||||
import Control.Throws
|
||||
|
||||
data ISO2022JP = ISO2022JP deriving (Eq,Show,Typeable)
|
||||
|
||||
instance Encoding ISO2022JP where
|
||||
encodeChar = encodeCharISO2022
|
||||
decodeChar = decodeCharISO2022
|
||||
encode = encodeISO2022
|
||||
decode = decodeISO2022
|
||||
encodeable _ c = encodeable ASCII c || encodeable JISX0201 c || encodeable JISX0208 c
|
||||
|
||||
instance ISO2022 ISO2022JP where
|
||||
readEscape _ = fetchAhead $ do
|
||||
w <- fetchWord8
|
||||
if w == 27
|
||||
then (do
|
||||
w2 <- fetchWord8
|
||||
w3 <- fetchWord8
|
||||
case w2 of
|
||||
40 -> case w3 of
|
||||
66 -> return $ Just $ DynEncoding ASCII
|
||||
74 -> return $ Just $ DynEncoding JISX0201
|
||||
_ -> throwException (IllegalCharacter w3)
|
||||
36 -> case w3 of
|
||||
64 -> return $ Just $ DynEncoding JISX0208 -- XXX: this actually has to be the 1978 version of the standard... too bad I can't find it
|
||||
66 -> return $ Just $ DynEncoding JISX0208
|
||||
_ -> throwException (IllegalCharacter w3)
|
||||
_ -> throwException (IllegalCharacter w2)
|
||||
)
|
||||
else return Nothing
|
||||
encodingForChar _ c
|
||||
| encodeable ASCII c = Just (DynEncoding ASCII,[27,40,66])
|
||||
| encodeable JISX0201 c = Just (DynEncoding JISX0201,[27,40,74])
|
||||
| encodeable JISX0208 c = Just (DynEncoding JISX0208,[27,36,66])
|
||||
| otherwise = Nothing
|
||||
@ -1,3 +1,6 @@
|
||||
{-# LANGUAGE DeriveDataTypeable #-}
|
||||
{- | Implements ISO\/IEC 8859-1 alias latin-1 encoding. See <http://en.wikipedia.org/wiki/ISO/IEC_8859-1> for further information.
|
||||
-}
|
||||
module Data.Encoding.ISO88591 where
|
||||
|
||||
import Control.Throws
|
||||
@ -6,8 +9,9 @@ import Data.Encoding.Exception
|
||||
import Data.Encoding.ByteSource
|
||||
import Data.Encoding.ByteSink
|
||||
import Data.Char (ord,chr)
|
||||
import Data.Typeable
|
||||
|
||||
data ISO88591 = ISO88591 deriving (Show)
|
||||
data ISO88591 = ISO88591 deriving (Show,Eq,Typeable)
|
||||
|
||||
instance Encoding ISO88591 where
|
||||
encodeChar _ c
|
||||
@ -15,4 +19,5 @@ instance Encoding ISO88591 where
|
||||
| otherwise = pushWord8 (fromIntegral $ ord c)
|
||||
decodeChar _ = do
|
||||
w <- fetchWord8
|
||||
return (chr $ fromIntegral w)
|
||||
return (chr $ fromIntegral w)
|
||||
encodeable _ c = c <= '\255'
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885910 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885910" "8859-10.TXT" )
|
||||
@ -1,50 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-10:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table format: Format A
|
||||
# Date: 1999 October 11
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-10:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-10 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version new.
|
||||
# 1.1 corrected mistake in mapping of 0xA4
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885911 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885911" "8859-11.TXT" )
|
||||
@ -1,52 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-11:2001 to Unicode
|
||||
# Unicode version: 3.2
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 2002 October 7
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 2002 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-11:2001 characters map into Unicode.
|
||||
#
|
||||
# ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with
|
||||
# the addition of 0xA0 NO-BREAK SPACE.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-11 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-11 order.
|
||||
#
|
||||
# Version history:
|
||||
# 2002 October 7 Created
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# For any comments or problems, please use the Unicode
|
||||
# web contact form at:
|
||||
# http://www.unicode.org/unicode/reporting.html
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -294,4 +245,4 @@
|
||||
0xF8 0x0E58 # THAI DIGIT EIGHT
|
||||
0xF9 0x0E59 # THAI DIGIT NINE
|
||||
0xFA 0x0E5A # THAI CHARACTER ANGKHANKHU
|
||||
0xFB 0x0E5B # THAI CHARACTER KHOMUT
|
||||
0xFB 0x0E5B # THAI CHARACTER KHOMUT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885913 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885913" "8859-13.TXT" )
|
||||
@ -1,46 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-13:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-13:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-13 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885914 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885914" "8859-14.TXT" )
|
||||
@ -1,47 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-14:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-14:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-14 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885915 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885915" "8859-15.TXT" )
|
||||
@ -1,49 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-15:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-15:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-15 order.
|
||||
#
|
||||
# Version history
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO885916 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO885916" "8859-16.TXT" )
|
||||
@ -1,46 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-16:2001 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 2001 July 26
|
||||
# Authors: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
|
||||
#
|
||||
# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-16:2001 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-16 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88592 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88592" "8859-2.TXT" )
|
||||
@ -1,50 +1,3 @@
|
||||
#
|
||||
# Name: ISO 8859-2:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-2:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-2 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88593 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88593" "8859-3.TXT" )
|
||||
@ -1,50 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-3:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-3:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-3 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88594 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88594" "8859-4.TXT" )
|
||||
@ -1,50 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-4:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-4:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-4 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88595 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88595" "8859-5.TXT" )
|
||||
@ -1,50 +1,3 @@
|
||||
#
|
||||
# Name: ISO 8859-5:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-5:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-5 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88596 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88596" "8859-6.TXT" )
|
||||
@ -1,52 +1,3 @@
|
||||
#
|
||||
# Name: ISO 8859-6:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-6:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-6 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
|
||||
# of the Arabic digits (U+0660..U+0669).
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88597 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88597" "8859-7.TXT" )
|
||||
@ -1,58 +1,3 @@
|
||||
#
|
||||
# Name: ISO 8859-7:2003 to Unicode
|
||||
# Unicode version: 4.0
|
||||
# Table version: 2.0
|
||||
# Table format: Format A
|
||||
# Date: 2003-Nov-12
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-2003 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO 8859-7:2003 characters map into Unicode.
|
||||
#
|
||||
# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,
|
||||
# and ECMA 118. ISO 8859-7:2003 adds two currency signs
|
||||
# and one other character not in the earlier standard.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO 8859-7 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO 8859-7 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7
|
||||
# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7
|
||||
#
|
||||
# 2.0 version updates 1.0 version by adding mappings for the
|
||||
# three newly added characters 0xA4, 0xA5, 0xAA.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <http://www.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact the Unicode Consortium at:
|
||||
# <http://www.unicode.org/reporting.html>
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88598 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88598" "8859-8.TXT" )
|
||||
@ -1,52 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-8:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table format: Format A
|
||||
# Date: 2000-Jan-03
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-8:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-8 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.1 version updates to the published 8859-8:1999, correcting
|
||||
# the mapping of 0xAF and adding mappings for LRM and RLM.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
@ -1,6 +0,0 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Data.Encoding.ISO88599 where
|
||||
|
||||
import Data.Encoding.Helper.Template (makeISOInstance)
|
||||
|
||||
$( makeISOInstance "ISO88599" "8859-9.TXT" )
|
||||
@ -1,52 +1,3 @@
|
||||
#
|
||||
# Name: ISO/IEC 8859-9:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on magnetic media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-9:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-9 order.
|
||||
#
|
||||
# ISO/IEC 8859-9 is also equivalent to ISO-IR-148.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
158
Data/Encoding/JISX0201.mapping
Normal file
158
Data/Encoding/JISX0201.mapping
Normal file
@ -0,0 +1,158 @@
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x00A5 # YEN SIGN
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x203E # OVERLINE
|
||||
0xA1 0xFF61 # HALFWIDTH IDEOGRAPHIC FULL STOP
|
||||
0xA2 0xFF62 # HALFWIDTH LEFT CORNER BRACKET
|
||||
0xA3 0xFF63 # HALFWIDTH RIGHT CORNER BRACKET
|
||||
0xA4 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA
|
||||
0xA5 0xFF65 # HALFWIDTH KATAKANA MIDDLE DOT
|
||||
0xA6 0xFF66 # HALFWIDTH KATAKANA LETTER WO
|
||||
0xA7 0xFF67 # HALFWIDTH KATAKANA LETTER SMALL A
|
||||
0xA8 0xFF68 # HALFWIDTH KATAKANA LETTER SMALL I
|
||||
0xA9 0xFF69 # HALFWIDTH KATAKANA LETTER SMALL U
|
||||
0xAA 0xFF6A # HALFWIDTH KATAKANA LETTER SMALL E
|
||||
0xAB 0xFF6B # HALFWIDTH KATAKANA LETTER SMALL O
|
||||
0xAC 0xFF6C # HALFWIDTH KATAKANA LETTER SMALL YA
|
||||
0xAD 0xFF6D # HALFWIDTH KATAKANA LETTER SMALL YU
|
||||
0xAE 0xFF6E # HALFWIDTH KATAKANA LETTER SMALL YO
|
||||
0xAF 0xFF6F # HALFWIDTH KATAKANA LETTER SMALL TU
|
||||
0xB0 0xFF70 # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
|
||||
0xB1 0xFF71 # HALFWIDTH KATAKANA LETTER A
|
||||
0xB2 0xFF72 # HALFWIDTH KATAKANA LETTER I
|
||||
0xB3 0xFF73 # HALFWIDTH KATAKANA LETTER U
|
||||
0xB4 0xFF74 # HALFWIDTH KATAKANA LETTER E
|
||||
0xB5 0xFF75 # HALFWIDTH KATAKANA LETTER O
|
||||
0xB6 0xFF76 # HALFWIDTH KATAKANA LETTER KA
|
||||
0xB7 0xFF77 # HALFWIDTH KATAKANA LETTER KI
|
||||
0xB8 0xFF78 # HALFWIDTH KATAKANA LETTER KU
|
||||
0xB9 0xFF79 # HALFWIDTH KATAKANA LETTER KE
|
||||
0xBA 0xFF7A # HALFWIDTH KATAKANA LETTER KO
|
||||
0xBB 0xFF7B # HALFWIDTH KATAKANA LETTER SA
|
||||
0xBC 0xFF7C # HALFWIDTH KATAKANA LETTER SI
|
||||
0xBD 0xFF7D # HALFWIDTH KATAKANA LETTER SU
|
||||
0xBE 0xFF7E # HALFWIDTH KATAKANA LETTER SE
|
||||
0xBF 0xFF7F # HALFWIDTH KATAKANA LETTER SO
|
||||
0xC0 0xFF80 # HALFWIDTH KATAKANA LETTER TA
|
||||
0xC1 0xFF81 # HALFWIDTH KATAKANA LETTER TI
|
||||
0xC2 0xFF82 # HALFWIDTH KATAKANA LETTER TU
|
||||
0xC3 0xFF83 # HALFWIDTH KATAKANA LETTER TE
|
||||
0xC4 0xFF84 # HALFWIDTH KATAKANA LETTER TO
|
||||
0xC5 0xFF85 # HALFWIDTH KATAKANA LETTER NA
|
||||
0xC6 0xFF86 # HALFWIDTH KATAKANA LETTER NI
|
||||
0xC7 0xFF87 # HALFWIDTH KATAKANA LETTER NU
|
||||
0xC8 0xFF88 # HALFWIDTH KATAKANA LETTER NE
|
||||
0xC9 0xFF89 # HALFWIDTH KATAKANA LETTER NO
|
||||
0xCA 0xFF8A # HALFWIDTH KATAKANA LETTER HA
|
||||
0xCB 0xFF8B # HALFWIDTH KATAKANA LETTER HI
|
||||
0xCC 0xFF8C # HALFWIDTH KATAKANA LETTER HU
|
||||
0xCD 0xFF8D # HALFWIDTH KATAKANA LETTER HE
|
||||
0xCE 0xFF8E # HALFWIDTH KATAKANA LETTER HO
|
||||
0xCF 0xFF8F # HALFWIDTH KATAKANA LETTER MA
|
||||
0xD0 0xFF90 # HALFWIDTH KATAKANA LETTER MI
|
||||
0xD1 0xFF91 # HALFWIDTH KATAKANA LETTER MU
|
||||
0xD2 0xFF92 # HALFWIDTH KATAKANA LETTER ME
|
||||
0xD3 0xFF93 # HALFWIDTH KATAKANA LETTER MO
|
||||
0xD4 0xFF94 # HALFWIDTH KATAKANA LETTER YA
|
||||
0xD5 0xFF95 # HALFWIDTH KATAKANA LETTER YU
|
||||
0xD6 0xFF96 # HALFWIDTH KATAKANA LETTER YO
|
||||
0xD7 0xFF97 # HALFWIDTH KATAKANA LETTER RA
|
||||
0xD8 0xFF98 # HALFWIDTH KATAKANA LETTER RI
|
||||
0xD9 0xFF99 # HALFWIDTH KATAKANA LETTER RU
|
||||
0xDA 0xFF9A # HALFWIDTH KATAKANA LETTER RE
|
||||
0xDB 0xFF9B # HALFWIDTH KATAKANA LETTER RO
|
||||
0xDC 0xFF9C # HALFWIDTH KATAKANA LETTER WA
|
||||
0xDD 0xFF9D # HALFWIDTH KATAKANA LETTER N
|
||||
0xDE 0xFF9E # HALFWIDTH KATAKANA VOICED SOUND MARK
|
||||
0xDF 0xFF9F # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
|
||||
6879
Data/Encoding/JISX0208.mapping2
Normal file
6879
Data/Encoding/JISX0208.mapping2
Normal file
File diff suppressed because it is too large
Load Diff
6067
Data/Encoding/JISX0212.mapping2
Normal file
6067
Data/Encoding/JISX0212.mapping2
Normal file
File diff suppressed because it is too large
Load Diff
@ -56,4 +56,5 @@ instance Encoding KOI8R where
|
||||
| ch < '\128' = pushWord8 $ fromIntegral $ ord ch
|
||||
| otherwise = case lookup ch koi8rMap of
|
||||
Just w -> pushWord8 w
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
encodeable _ c = member c koi8rMap
|
||||
|
||||
@ -56,4 +56,5 @@ instance Encoding KOI8U where
|
||||
| ch < '\128' = pushWord8 $ fromIntegral $ ord ch
|
||||
| otherwise = case lookup ch koi8uMap of
|
||||
Just w -> pushWord8 w
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
Nothing -> throwException (HasNoRepresentation ch)
|
||||
encodeable _ c = member c koi8uMap
|
||||
|
||||
319
Data/Encoding/MacOSRoman.mapping
Normal file
319
Data/Encoding/MacOSRoman.mapping
Normal file
@ -0,0 +1,319 @@
|
||||
# /Notes on Mac OS Roman:/
|
||||
#
|
||||
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
|
||||
# environments, it is only supported directly in programming
|
||||
# interfaces for QuickDraw Text, the Script Manager, and related
|
||||
# Text Utilities. For other purposes it is supported via transcoding
|
||||
# to and from Unicode.
|
||||
#
|
||||
# This character set is used for at least the following Mac OS
|
||||
# localizations: U.S., British, Canadian French, French, Swiss
|
||||
# French, German, Swiss German, Italian, Swiss Italian, Dutch,
|
||||
# Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
|
||||
# Portuguese, Brazilian, and the default International system.
|
||||
#
|
||||
# Variants of Mac OS Roman are used for Croatian, Icelandic,
|
||||
# Turkish, Romanian, and other encodings. Separate mapping tables
|
||||
# are available for these encodings.
|
||||
#
|
||||
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
|
||||
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
|
||||
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
|
||||
# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
|
||||
# a "currency sign" variant of the Mac OS Roman encoding that still
|
||||
# maps 0xDB to U+00A4; this can be used for older fonts.
|
||||
#
|
||||
# Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
|
||||
# New York, Geneva, and Monaco did not implement the full Mac OS
|
||||
# Roman character set; they only supported character codes up to
|
||||
# 0xD8. The TrueType versions of these fonts have always implemented
|
||||
# the full character set, as with the bitmap and TrueType versions
|
||||
# of the other standard Roman fonts.
|
||||
#
|
||||
# In all Mac OS encodings, fonts such as Chicago which are used
|
||||
# as "system" fonts (for menus, dialogs, etc.) have four glyphs
|
||||
# at code points 0x11-0x14 for transient use by the Menu Manager.
|
||||
# These glyphs are not intended as characters for use in normal
|
||||
# text, and the associated code points are not generally
|
||||
# interpreted as associated with these glyphs; they are usually
|
||||
# interpreted (if at all) as the control codes DC1-DC4.
|
||||
#
|
||||
# /Unicode mapping issues and notes:/
|
||||
#
|
||||
# The following corporate zone Unicode character is used in this
|
||||
# mapping:
|
||||
#
|
||||
# 0xF8FF Apple logo
|
||||
#
|
||||
# NOTE: The graphic image associated with the Apple logo character
|
||||
# is not authorized for use without permission of Apple, and
|
||||
# unauthorized use might constitute trademark infringement.
|
||||
#
|
||||
# /Details of mapping changes in each version:/
|
||||
#
|
||||
# Changes from version n08 to version b02:
|
||||
#
|
||||
# * Encoding changed for Mac OS 8.5; change mapping of 0xDB from
|
||||
# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
|
||||
#
|
||||
# Changes from version n03 to version n04:
|
||||
#
|
||||
# * Change mapping of 0xBD from U+2126 to its canonical
|
||||
# decomposition, U+03A9.
|
||||
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xA0 0x2020 # DAGGER
|
||||
0xA1 0x00B0 # DEGREE SIGN
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A7 # SECTION SIGN
|
||||
0xA5 0x2022 # BULLET
|
||||
0xA6 0x00B6 # PILCROW SIGN
|
||||
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xA8 0x00AE # REGISTERED SIGN
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x2122 # TRADE MARK SIGN
|
||||
0xAB 0x00B4 # ACUTE ACCENT
|
||||
0xAC 0x00A8 # DIAERESIS
|
||||
0xAD 0x2260 # NOT EQUAL TO
|
||||
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xB0 0x221E # INFINITY
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x2264 # LESS-THAN OR EQUAL TO
|
||||
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
|
||||
0xB4 0x00A5 # YEN SIGN
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x2202 # PARTIAL DIFFERENTIAL
|
||||
0xB7 0x2211 # N-ARY SUMMATION
|
||||
0xB8 0x220F # N-ARY PRODUCT
|
||||
0xB9 0x03C0 # GREEK SMALL LETTER PI
|
||||
0xBA 0x222B # INTEGRAL
|
||||
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
|
||||
0xBE 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xC0 0x00BF # INVERTED QUESTION MARK
|
||||
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xC2 0x00AC # NOT SIGN
|
||||
0xC3 0x221A # SQUARE ROOT
|
||||
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
|
||||
0xC5 0x2248 # ALMOST EQUAL TO
|
||||
0xC6 0x2206 # INCREMENT
|
||||
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xC9 0x2026 # HORIZONTAL ELLIPSIS
|
||||
0xCA 0x00A0 # NO-BREAK SPACE
|
||||
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xCF 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xD0 0x2013 # EN DASH
|
||||
0xD1 0x2014 # EM DASH
|
||||
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
|
||||
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xD6 0x00F7 # DIVISION SIGN
|
||||
0xD7 0x25CA # LOZENGE
|
||||
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xDA 0x2044 # FRACTION SLASH
|
||||
0xDB 0x20AC # EURO SIGN
|
||||
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0xDE 0xFB01 # LATIN SMALL LIGATURE FI
|
||||
0xDF 0xFB02 # LATIN SMALL LIGATURE FL
|
||||
0xE0 0x2021 # DOUBLE DAGGER
|
||||
0xE1 0x00B7 # MIDDLE DOT
|
||||
0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
|
||||
0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xE4 0x2030 # PER MILLE SIGN
|
||||
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xF0 0xF8FF # Apple logo
|
||||
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
0xF7 0x02DC # SMALL TILDE
|
||||
0xF8 0x00AF # MACRON
|
||||
0xF9 0x02D8 # BREVE
|
||||
0xFA 0x02D9 # DOT ABOVE
|
||||
0xFB 0x02DA # RING ABOVE
|
||||
0xFC 0x00B8 # CEDILLA
|
||||
0xFD 0x02DD # DOUBLE ACUTE ACCENT
|
||||
0xFE 0x02DB # OGONEK
|
||||
0xFF 0x02C7 # CARON
|
||||
160
Data/Encoding/Preprocessor/Mapping.hs
Normal file
160
Data/Encoding/Preprocessor/Mapping.hs
Normal file
@ -0,0 +1,160 @@
|
||||
module Data.Encoding.Preprocessor.Mapping where
|
||||
|
||||
import Distribution.Simple.PreProcess
|
||||
import Distribution.Simple.Utils
|
||||
import System.IO
|
||||
import System.FilePath
|
||||
import Data.List (intersperse,unfoldr)
|
||||
import Data.Maybe
|
||||
import Data.Char
|
||||
import Data.Word
|
||||
import Data.Ix
|
||||
import Data.Bits
|
||||
import Data.Array.Static.Builder
|
||||
import Data.CharMap.Builder
|
||||
|
||||
data MappingType
|
||||
= ISOMapping
|
||||
| JISMapping
|
||||
deriving (Eq,Ord,Show,Read)
|
||||
|
||||
readTranslation :: Int -> FilePath -> IO ([(Integer,Maybe Char)],[String])
|
||||
readTranslation offset file = do
|
||||
cont <- fmap parseTranslationTable $ readFile file
|
||||
let docstr = mapMaybe snd (takeWhile (null.fst) cont)
|
||||
let trans = mapMaybe (\(ln,comm) -> case drop offset ln of
|
||||
[src] -> Just (src,Nothing)
|
||||
[src,trg] -> Just (src,Just $ chr $ fromIntegral trg)
|
||||
_ -> Nothing) cont
|
||||
return (trans,docstr)
|
||||
|
||||
parseTranslationTable :: String -> [([Integer],Maybe String)]
|
||||
parseTranslationTable cont = map (\ln -> let (trans,comm) = break (=='#') ln
|
||||
in (map read (words trans),case comm of
|
||||
"" -> Nothing
|
||||
_ -> Just (tail comm))
|
||||
) (lines cont)
|
||||
|
||||
buildDocTable :: [(Integer,Maybe Char)] -> [String]
|
||||
buildDocTable = intersperse "".
|
||||
map (\(i,mbc) -> show i ++ (case mbc of
|
||||
Nothing -> ""
|
||||
Just c -> "\t = &#"++show (ord c)++"; ("++show (ord c)++")"))
|
||||
|
||||
{-fillTranslations :: (Ix a,Show a) => a -> a -> [(a,Maybe Char)] -> [(a,Maybe Char)]
|
||||
fillTranslations f t = merge (range (f,t))
|
||||
where
|
||||
merge xs [] = map (\x -> (x,Nothing)) xs
|
||||
merge [] cs = error $ "Data.Encoding.Helper.Template.fillTranslations: Character translations out of range: " ++ show cs
|
||||
merge (x:xs) (y:ys) = if x < fst y
|
||||
then (x,Nothing):(merge xs (y:ys))
|
||||
else y:(merge xs ys)-}
|
||||
|
||||
fillTranslations :: (Enum a,Eq a) => [(a,Maybe Char)] -> (a,a,[Maybe Char])
|
||||
fillTranslations [] = error "fillTranslations: zero elements"
|
||||
fillTranslations ((s,c):rest) = let (e,r) = fill' s rest
|
||||
fill' cur [] = (cur,[])
|
||||
fill' cur all@((n,c):rest2) = if succ cur == n
|
||||
then (let (e',res) = fill' n rest2
|
||||
in (e',c:res))
|
||||
else (let (e',res) = fill' (succ cur) all
|
||||
in (e',Nothing:res))
|
||||
in (s,e,c:r)
|
||||
|
||||
validTranslations :: [(a,Maybe Char)] -> [(a,Char)]
|
||||
validTranslations = mapMaybe (\(n,mc) -> case mc of
|
||||
Nothing -> Nothing
|
||||
Just c -> Just (n,c))
|
||||
|
||||
mappingPreprocessor :: PreProcessor
|
||||
mappingPreprocessor = PreProcessor
|
||||
{platformIndependent = True
|
||||
,runPreProcessor = \(sbase,sfile) (tbase,tfile) verb -> do
|
||||
let (dir,fn) = splitFileName sfile
|
||||
let (bname,ext) = splitExtensions fn
|
||||
let dirs = splitDirectories dir
|
||||
let tp = case ext of
|
||||
".mapping" -> ISOMapping
|
||||
".mapping2" -> JISMapping
|
||||
info verb (tfile++" generated from mapping "++sfile)
|
||||
preprocessMapping tp (sbase </> sfile) (tbase </> tfile) dirs bname
|
||||
}
|
||||
|
||||
preprocessMapping :: MappingType -> FilePath -> FilePath -> [String] -> String -> IO ()
|
||||
preprocessMapping tp src trg mods name = do
|
||||
(trans,doc) <- readTranslation 0 src
|
||||
let mod = concat $ intersperse "." (mods++[name])
|
||||
let wsize = case tp of
|
||||
ISOMapping -> 1
|
||||
JISMapping -> 2
|
||||
let bsize = show (wsize*8) ++ (if wsize > 1 then "be" else "")
|
||||
|
||||
--let (larr,off,arr) = staticArray32 trans
|
||||
let (sarr,earr,els) = fillTranslations trans
|
||||
{-let (lmp,idx,val) = staticMap wsize trans-}
|
||||
let arrname = "decoding_array_"++name
|
||||
let mpname = "encoding_map_"++name
|
||||
let bcheck exp = if sarr/=0 || earr/=255
|
||||
then ("(if "++
|
||||
concat (intersperse "||" $ (if sarr/=0 then ["w<"++show sarr] else [])++(if earr/=255 then ["w>"++show earr] else []))++
|
||||
" then throwException $ IllegalCharacter $ fromIntegral w else "++exp++")"
|
||||
) else exp
|
||||
let mp = buildCharMap (mapMaybe (\(i,c) -> do
|
||||
rc <- c
|
||||
return $ SingleMapping
|
||||
rc
|
||||
(reverse $ unfoldr (\(w,n) -> if n == 0
|
||||
then Nothing
|
||||
else Just (fromIntegral w,(w `shiftR` 8,n-1))) (i,wsize))
|
||||
) trans
|
||||
)
|
||||
{-let mp = case wsize of
|
||||
1 -> buildStaticMap (mapMaybe (\(i,c) -> case c of
|
||||
Nothing -> Nothing
|
||||
Just rc -> Just (rc,fromIntegral i::Word8)) trans)
|
||||
2 -> buildStaticMap (mapMaybe (\(i,c) -> case c of
|
||||
Nothing -> Nothing
|
||||
Just rc -> Just (rc,fromIntegral i::Word16)) trans)-}
|
||||
writeFile trg $ unlines $
|
||||
["{- This file has been auto-generated. Do not edit it. -}"
|
||||
,"{-# LANGUAGE MagicHash,DeriveDataTypeable #-}"
|
||||
]++(case doc of
|
||||
[] -> ["{- |"]
|
||||
_ -> ("{- | "++head doc):(map (\ln -> " "++ln) (tail doc)))
|
||||
++[""]
|
||||
++buildDocTable trans
|
||||
++[" -}"]
|
||||
++
|
||||
["module "++mod++"("++name++"(..)) where"
|
||||
,""
|
||||
,"import Data.Encoding.Base"
|
||||
,"import Data.Encoding.ByteSource"
|
||||
,"import Data.Encoding.ByteSink"
|
||||
,"import Data.Encoding.Exception"
|
||||
,"import Data.CharMap"
|
||||
,"import Data.Array.Static"
|
||||
,"import Data.Map.Static"
|
||||
,"import Control.Throws"
|
||||
,"import Prelude hiding (lookup)"
|
||||
,"import Data.Word"
|
||||
,""
|
||||
,"import Data.Typeable"
|
||||
,""
|
||||
,"data "++name++" = "++name
|
||||
," deriving (Show,Eq,Typeable)"
|
||||
,""
|
||||
,arrname++" = "++buildStaticArray (sarr,earr) els
|
||||
,""
|
||||
,mpname++" :: CharMap"
|
||||
,mpname++" = "++mp
|
||||
,""
|
||||
,"instance Encoding "++name++" where"
|
||||
," decodeChar _ = do"
|
||||
," w <- fetchWord"++bsize
|
||||
," "++bcheck "return ()"
|
||||
," case "++arrname++"!w of"
|
||||
," Nothing -> throwException $ IllegalCharacter $ fromIntegral w"
|
||||
," Just c -> return c"
|
||||
," encodeChar _ c = mapEncode c "++mpname
|
||||
," encodeable _ c = mapMember c "++mpname
|
||||
]
|
||||
582
Data/Encoding/Preprocessor/XMLMapping.hs
Normal file
582
Data/Encoding/Preprocessor/XMLMapping.hs
Normal file
@ -0,0 +1,582 @@
|
||||
module Data.Encoding.Preprocessor.XMLMapping where
|
||||
|
||||
import Data.Word
|
||||
import Text.Read
|
||||
import Text.Show
|
||||
import Numeric
|
||||
import Data.List (find)
|
||||
import Data.Char
|
||||
import Text.XML.HaXml.XmlContent
|
||||
import Text.XML.HaXml.OneOfN
|
||||
import Text.XML.HaXml.Types
|
||||
|
||||
testFile :: FilePath -> IO CharacterMapping
|
||||
testFile fp = fReadXml fp
|
||||
|
||||
{-Type decls-}
|
||||
|
||||
data CharacterMapping = CharacterMapping CharacterMapping_Attrs
|
||||
(Maybe History)
|
||||
(OneOf2 Validity Stateful_siso)
|
||||
Assignments
|
||||
deriving (Eq,Show)
|
||||
data CharacterMapping_Attrs = CharacterMapping_Attrs
|
||||
{ characterMappingId :: String
|
||||
, characterMappingVersion :: String
|
||||
, characterMappingDescription :: (Maybe String)
|
||||
, characterMappingContact :: (Maybe String)
|
||||
, characterMappingRegistrationAuthority :: (Maybe String)
|
||||
, characterMappingRegistrationName :: (Maybe String)
|
||||
, characterMappingCopyright :: (Maybe String)
|
||||
, characterMappingBidiOrder :: (Defaultable CharacterMapping_bidiOrder)
|
||||
, characterMappingCombiningOrder :: (Defaultable CharacterMapping_combiningOrder)
|
||||
, characterMappingNormalization :: (Defaultable CharacterMapping_normalization)
|
||||
} deriving (Eq,Show)
|
||||
data CharacterMapping_bidiOrder = CharacterMapping_bidiOrder_logical
|
||||
| CharacterMapping_bidiOrder_RTL |
|
||||
CharacterMapping_bidiOrder_LTR
|
||||
deriving (Eq,Show)
|
||||
data CharacterMapping_combiningOrder = CharacterMapping_combiningOrder_before
|
||||
| CharacterMapping_combiningOrder_after
|
||||
deriving (Eq,Show)
|
||||
data CharacterMapping_normalization = CharacterMapping_normalization_undetermined
|
||||
| CharacterMapping_normalization_neither |
|
||||
CharacterMapping_normalization_NFC |
|
||||
CharacterMapping_normalization_NFD |
|
||||
CharacterMapping_normalization_NFC_NFD
|
||||
deriving (Eq,Show)
|
||||
data Stateful_siso = Stateful_siso Validity Validity
|
||||
deriving (Eq,Show)
|
||||
newtype History = History (List1 Modified) deriving (Eq,Show)
|
||||
data Modified = Modified Modified_Attrs String
|
||||
deriving (Eq,Show)
|
||||
data Modified_Attrs = Modified_Attrs
|
||||
{ modifiedVersion :: String
|
||||
, modifiedDate :: String
|
||||
} deriving (Eq,Show)
|
||||
newtype Validity = Validity (List1 State) deriving (Eq,Show)
|
||||
data State = State
|
||||
{ stateType :: String
|
||||
, stateNext :: String
|
||||
, stateS :: ByteSequence
|
||||
, stateE :: (Maybe ByteSequence)
|
||||
, stateMax :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Assignments = Assignments Assignments_Attrs [A] [Fub] [Fbu]
|
||||
[Sub1] [Range]
|
||||
deriving (Eq,Show)
|
||||
data Assignments_Attrs = Assignments_Attrs
|
||||
{ assignmentsSub :: (Defaultable String)
|
||||
, assignmentsSub1 :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data A = A
|
||||
{ aB :: ByteSequence
|
||||
, aU :: CodePoints
|
||||
, aC :: (Maybe String)
|
||||
, aV :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Fub = Fub
|
||||
{ fubB :: ByteSequence
|
||||
, fubU :: CodePoints
|
||||
, fubC :: (Maybe String)
|
||||
, fubRu :: (Maybe String)
|
||||
, fubRc :: (Maybe String)
|
||||
, fubV :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Fbu = Fbu
|
||||
{ fbuB :: ByteSequence
|
||||
, fbuU :: CodePoints
|
||||
, fbuV :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Sub1 = Sub1
|
||||
{ sub1U :: CodePoints
|
||||
, sub1C :: (Maybe String)
|
||||
, sub1V :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Range = Range
|
||||
{ rangeBFirst :: ByteSequence
|
||||
, rangeBLast :: ByteSequence
|
||||
, rangeUFirst :: CodePoints
|
||||
, rangeULast :: CodePoints
|
||||
, rangeBMin :: ByteSequence
|
||||
, rangeBMax :: ByteSequence
|
||||
, rangeV :: (Maybe String)
|
||||
} deriving (Eq,Show)
|
||||
data Iso2022 = Iso2022 (Maybe Default2022)
|
||||
(List1 (OneOf5 Escape Si So Ss2 Ss3))
|
||||
deriving (Eq,Show)
|
||||
data Default2022 = Default2022
|
||||
{ default2022Name :: String
|
||||
} deriving (Eq,Show)
|
||||
data Escape = Escape
|
||||
{ escapeSequence :: String
|
||||
, escapeName :: String
|
||||
} deriving (Eq,Show)
|
||||
newtype Si = Si (List1 Designator) deriving (Eq,Show)
|
||||
newtype So = So (List1 Designator) deriving (Eq,Show)
|
||||
newtype Ss2 = Ss2 (List1 Designator) deriving (Eq,Show)
|
||||
newtype Ss3 = Ss3 (List1 Designator) deriving (Eq,Show)
|
||||
data Designator = Designator
|
||||
{ designatorSequence :: String
|
||||
, designatorName :: String
|
||||
} deriving (Eq,Show)
|
||||
|
||||
newtype ByteSequence = BS [Word8] deriving Eq
|
||||
|
||||
newtype CodePoints = CP [Char] deriving Eq
|
||||
|
||||
{-Instance decls-}
|
||||
|
||||
instance HTypeable CharacterMapping where
|
||||
toHType x = Defined "characterMapping" [] []
|
||||
instance XmlContent CharacterMapping where
|
||||
toContents (CharacterMapping as a b c) =
|
||||
[CElem (Elem (N "characterMapping") (toAttrs as) (maybe [] toContents a
|
||||
++ toContents b
|
||||
++ toContents c)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ as _) <- element ["characterMapping"]
|
||||
; interior e $ return (CharacterMapping (fromAttrs as))
|
||||
`apply` optional parseContents `apply` parseContents `apply` parseContents
|
||||
} `adjustErr` ("in <characterMapping>, "++)
|
||||
instance XmlAttributes CharacterMapping_Attrs where
|
||||
fromAttrs as =
|
||||
CharacterMapping_Attrs
|
||||
{ characterMappingId = definiteA fromAttrToStr "characterMapping" "id" as
|
||||
, characterMappingVersion = definiteA fromAttrToStr "characterMapping" "version" as
|
||||
, characterMappingDescription = possibleA fromAttrToStr "description" as
|
||||
, characterMappingContact = possibleA fromAttrToStr "contact" as
|
||||
, characterMappingRegistrationAuthority = possibleA fromAttrToStr "registrationAuthority" as
|
||||
, characterMappingRegistrationName = possibleA fromAttrToStr "registrationName" as
|
||||
, characterMappingCopyright = possibleA fromAttrToStr "copyright" as
|
||||
, characterMappingBidiOrder = defaultA fromAttrToTyp CharacterMapping_bidiOrder_logical "bidiOrder" as
|
||||
, characterMappingCombiningOrder = defaultA fromAttrToTyp CharacterMapping_combiningOrder_after "combiningOrder" as
|
||||
, characterMappingNormalization = defaultA fromAttrToTyp CharacterMapping_normalization_undetermined "normalization" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "id" (characterMappingId v)
|
||||
, toAttrFrStr "version" (characterMappingVersion v)
|
||||
, maybeToAttr toAttrFrStr "description" (characterMappingDescription v)
|
||||
, maybeToAttr toAttrFrStr "contact" (characterMappingContact v)
|
||||
, maybeToAttr toAttrFrStr "registrationAuthority" (characterMappingRegistrationAuthority v)
|
||||
, maybeToAttr toAttrFrStr "registrationName" (characterMappingRegistrationName v)
|
||||
, maybeToAttr toAttrFrStr "copyright" (characterMappingCopyright v)
|
||||
, defaultToAttr toAttrFrTyp "bidiOrder" (characterMappingBidiOrder v)
|
||||
, defaultToAttr toAttrFrTyp "combiningOrder" (characterMappingCombiningOrder v)
|
||||
, defaultToAttr toAttrFrTyp "normalization" (characterMappingNormalization v)
|
||||
]
|
||||
|
||||
instance XmlAttrType CharacterMapping_bidiOrder where
|
||||
fromAttrToTyp n (n',v)
|
||||
| N n==n' = translate (attr2str v)
|
||||
| otherwise = Nothing
|
||||
where translate "logical" = Just CharacterMapping_bidiOrder_logical
|
||||
translate "RTL" = Just CharacterMapping_bidiOrder_RTL
|
||||
translate "LTR" = Just CharacterMapping_bidiOrder_LTR
|
||||
translate _ = Nothing
|
||||
toAttrFrTyp n CharacterMapping_bidiOrder_logical = Just (N n, str2attr "logical")
|
||||
toAttrFrTyp n CharacterMapping_bidiOrder_RTL = Just (N n, str2attr "RTL")
|
||||
toAttrFrTyp n CharacterMapping_bidiOrder_LTR = Just (N n, str2attr "LTR")
|
||||
|
||||
instance XmlAttrType CharacterMapping_combiningOrder where
|
||||
fromAttrToTyp n (n',v)
|
||||
| N n==n' = translate (attr2str v)
|
||||
| otherwise = Nothing
|
||||
where translate "before" = Just CharacterMapping_combiningOrder_before
|
||||
translate "after" = Just CharacterMapping_combiningOrder_after
|
||||
translate _ = Nothing
|
||||
toAttrFrTyp n CharacterMapping_combiningOrder_before = Just (N n, str2attr "before")
|
||||
toAttrFrTyp n CharacterMapping_combiningOrder_after = Just (N n, str2attr "after")
|
||||
|
||||
instance XmlAttrType CharacterMapping_normalization where
|
||||
fromAttrToTyp n (n',v)
|
||||
| N n==n' = translate (attr2str v)
|
||||
| otherwise = Nothing
|
||||
where translate "undetermined" = Just CharacterMapping_normalization_undetermined
|
||||
translate "neither" = Just CharacterMapping_normalization_neither
|
||||
translate "NFC" = Just CharacterMapping_normalization_NFC
|
||||
translate "NFD" = Just CharacterMapping_normalization_NFD
|
||||
translate "NFC_NFD" = Just CharacterMapping_normalization_NFC_NFD
|
||||
translate _ = Nothing
|
||||
toAttrFrTyp n CharacterMapping_normalization_undetermined = Just (N n, str2attr "undetermined")
|
||||
toAttrFrTyp n CharacterMapping_normalization_neither = Just (N n, str2attr "neither")
|
||||
toAttrFrTyp n CharacterMapping_normalization_NFC = Just (N n, str2attr "NFC")
|
||||
toAttrFrTyp n CharacterMapping_normalization_NFD = Just (N n, str2attr "NFD")
|
||||
toAttrFrTyp n CharacterMapping_normalization_NFC_NFD = Just (N n, str2attr "NFC_NFD")
|
||||
|
||||
instance XmlAttrType ByteSequence where
|
||||
fromAttrToTyp n (n',v)
|
||||
| N n==n' = parseByteSequence (attr2str v)
|
||||
| otherwise = Nothing
|
||||
toAttrFrTyp n bs = Just (N n, str2attr $ show bs)
|
||||
|
||||
parseByteSequence :: String -> Maybe ByteSequence
|
||||
parseByteSequence str = do
|
||||
seq <- mapM (\w -> do
|
||||
(res,_) <- find (null.snd) (readHex w)
|
||||
return res
|
||||
) (words str)
|
||||
return $ BS seq
|
||||
|
||||
instance Show ByteSequence where
|
||||
show (BS seq) = foldl (\f w -> f . (showChar ' ') . (showHex w)) id seq ""
|
||||
|
||||
instance XmlAttrType CodePoints where
|
||||
fromAttrToTyp n (n',v)
|
||||
| N n==n' = parseCodePoints (attr2str v)
|
||||
| otherwise = Nothing
|
||||
toAttrFrTyp n bs = Just (N n, str2attr $ show bs)
|
||||
|
||||
parseCodePoints :: String -> Maybe CodePoints
|
||||
parseCodePoints str = do
|
||||
seq <- mapM (\w -> do
|
||||
(res,_) <- find (null.snd) (readHex w)
|
||||
return (chr res)
|
||||
) (words str)
|
||||
return $ CP seq
|
||||
|
||||
instance Show CodePoints where
|
||||
show (CP seq) = foldl (\f w -> f . (showChar ' ') . (showHex (ord w))) id seq ""
|
||||
|
||||
instance HTypeable Stateful_siso where
|
||||
toHType x = Defined "stateful_siso" [] []
|
||||
instance XmlContent Stateful_siso where
|
||||
toContents (Stateful_siso a b) =
|
||||
[CElem (Elem (N "stateful_siso") [] (toContents a ++ toContents b)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["stateful_siso"]
|
||||
; interior e $ return (Stateful_siso) `apply` parseContents
|
||||
`apply` parseContents
|
||||
} `adjustErr` ("in <stateful_siso>, "++)
|
||||
|
||||
instance HTypeable History where
|
||||
toHType x = Defined "history" [] []
|
||||
instance XmlContent History where
|
||||
toContents (History a) =
|
||||
[CElem (Elem (N "history") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["history"]
|
||||
; interior e $ return (History) `apply` parseContents
|
||||
} `adjustErr` ("in <history>, "++)
|
||||
|
||||
instance HTypeable Modified where
|
||||
toHType x = Defined "modified" [] []
|
||||
instance XmlContent Modified where
|
||||
toContents (Modified as a) =
|
||||
[CElem (Elem (N "modified") (toAttrs as) (toText a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ as _) <- element ["modified"]
|
||||
; interior e $ return (Modified (fromAttrs as))
|
||||
`apply` (text `onFail` return "")
|
||||
} `adjustErr` ("in <modified>, "++)
|
||||
instance XmlAttributes Modified_Attrs where
|
||||
fromAttrs as =
|
||||
Modified_Attrs
|
||||
{ modifiedVersion = definiteA fromAttrToStr "modified" "version" as
|
||||
, modifiedDate = definiteA fromAttrToStr "modified" "date" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "version" (modifiedVersion v)
|
||||
, toAttrFrStr "date" (modifiedDate v)
|
||||
]
|
||||
|
||||
instance HTypeable Validity where
|
||||
toHType x = Defined "validity" [] []
|
||||
instance XmlContent Validity where
|
||||
toContents (Validity a) =
|
||||
[CElem (Elem (N "validity") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["validity"]
|
||||
; interior e $ return (Validity) `apply` parseContents
|
||||
} `adjustErr` ("in <validity>, "++)
|
||||
|
||||
instance HTypeable State where
|
||||
toHType x = Defined "state" [] []
|
||||
instance XmlContent State where
|
||||
toContents as =
|
||||
[CElem (Elem (N "state") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["state"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <state>, "++)
|
||||
instance XmlAttributes State where
|
||||
fromAttrs as =
|
||||
State
|
||||
{ stateType = definiteA fromAttrToStr "state" "type" as
|
||||
, stateNext = definiteA fromAttrToStr "state" "next" as
|
||||
, stateS = definiteA fromAttrToTyp "state" "s" as
|
||||
, stateE = possibleA fromAttrToTyp "e" as
|
||||
, stateMax = possibleA fromAttrToStr "max" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "type" (stateType v)
|
||||
, toAttrFrStr "next" (stateNext v)
|
||||
, toAttrFrTyp "s" (stateS v)
|
||||
, maybeToAttr toAttrFrTyp "e" (stateE v)
|
||||
, maybeToAttr toAttrFrStr "max" (stateMax v)
|
||||
]
|
||||
|
||||
instance HTypeable Assignments where
|
||||
toHType x = Defined "assignments" [] []
|
||||
instance XmlContent Assignments where
|
||||
toContents (Assignments as a b c d e) =
|
||||
[CElem (Elem (N "assignments") (toAttrs as) (concatMap toContents a ++
|
||||
concatMap toContents b ++ concatMap toContents c ++
|
||||
concatMap toContents d ++
|
||||
concatMap toContents e)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ as _) <- element ["assignments"]
|
||||
; interior e $ return (Assignments (fromAttrs as))
|
||||
`apply` many parseContents `apply` many parseContents
|
||||
`apply` many parseContents `apply` many parseContents
|
||||
`apply` many parseContents
|
||||
} `adjustErr` ("in <assignments>, "++)
|
||||
instance XmlAttributes Assignments_Attrs where
|
||||
fromAttrs as =
|
||||
Assignments_Attrs
|
||||
{ assignmentsSub = defaultA fromAttrToStr "1A" "sub" as
|
||||
, assignmentsSub1 = possibleA fromAttrToStr "sub1" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ defaultToAttr toAttrFrStr "sub" (assignmentsSub v)
|
||||
, maybeToAttr toAttrFrStr "sub1" (assignmentsSub1 v)
|
||||
]
|
||||
|
||||
instance HTypeable A where
|
||||
toHType x = Defined "a" [] []
|
||||
instance XmlContent A where
|
||||
toContents as =
|
||||
[CElem (Elem (N "a") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["a"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <a>, "++)
|
||||
instance XmlAttributes A where
|
||||
fromAttrs as =
|
||||
A { aB = definiteA fromAttrToTyp "a" "b" as
|
||||
, aU = definiteA fromAttrToTyp "a" "u" as
|
||||
, aC = possibleA fromAttrToStr "c" as
|
||||
, aV = possibleA fromAttrToStr "v" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrTyp "b" (aB v)
|
||||
, toAttrFrTyp "u" (aU v)
|
||||
, maybeToAttr toAttrFrStr "c" (aC v)
|
||||
, maybeToAttr toAttrFrStr "v" (aV v)
|
||||
]
|
||||
|
||||
instance HTypeable Fub where
|
||||
toHType x = Defined "fub" [] []
|
||||
instance XmlContent Fub where
|
||||
toContents as =
|
||||
[CElem (Elem (N "fub") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["fub"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <fub>, "++)
|
||||
instance XmlAttributes Fub where
|
||||
fromAttrs as =
|
||||
Fub
|
||||
{ fubB = definiteA fromAttrToTyp "fub" "b" as
|
||||
, fubU = definiteA fromAttrToTyp "fub" "u" as
|
||||
, fubC = possibleA fromAttrToStr "c" as
|
||||
, fubRu = possibleA fromAttrToStr "ru" as
|
||||
, fubRc = possibleA fromAttrToStr "rc" as
|
||||
, fubV = possibleA fromAttrToStr "v" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrTyp "b" (fubB v)
|
||||
, toAttrFrTyp "u" (fubU v)
|
||||
, maybeToAttr toAttrFrStr "c" (fubC v)
|
||||
, maybeToAttr toAttrFrStr "ru" (fubRu v)
|
||||
, maybeToAttr toAttrFrStr "rc" (fubRc v)
|
||||
, maybeToAttr toAttrFrStr "v" (fubV v)
|
||||
]
|
||||
|
||||
instance HTypeable Fbu where
|
||||
toHType x = Defined "fbu" [] []
|
||||
instance XmlContent Fbu where
|
||||
toContents as =
|
||||
[CElem (Elem (N "fbu") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["fbu"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <fbu>, "++)
|
||||
instance XmlAttributes Fbu where
|
||||
fromAttrs as =
|
||||
Fbu
|
||||
{ fbuB = definiteA fromAttrToTyp "fbu" "b" as
|
||||
, fbuU = definiteA fromAttrToTyp "fbu" "u" as
|
||||
, fbuV = possibleA fromAttrToStr "v" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrTyp "b" (fbuB v)
|
||||
, toAttrFrTyp "u" (fbuU v)
|
||||
, maybeToAttr toAttrFrStr "v" (fbuV v)
|
||||
]
|
||||
|
||||
instance HTypeable Sub1 where
|
||||
toHType x = Defined "sub1" [] []
|
||||
instance XmlContent Sub1 where
|
||||
toContents as =
|
||||
[CElem (Elem (N "sub1") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["sub1"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <sub1>, "++)
|
||||
instance XmlAttributes Sub1 where
|
||||
fromAttrs as =
|
||||
Sub1
|
||||
{ sub1U = definiteA fromAttrToTyp "sub1" "u" as
|
||||
, sub1C = possibleA fromAttrToStr "c" as
|
||||
, sub1V = possibleA fromAttrToStr "v" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrTyp "u" (sub1U v)
|
||||
, maybeToAttr toAttrFrStr "c" (sub1C v)
|
||||
, maybeToAttr toAttrFrStr "v" (sub1V v)
|
||||
]
|
||||
|
||||
instance HTypeable Range where
|
||||
toHType x = Defined "range" [] []
|
||||
instance XmlContent Range where
|
||||
toContents as =
|
||||
[CElem (Elem (N "range") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["range"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <range>, "++)
|
||||
instance XmlAttributes Range where
|
||||
fromAttrs as =
|
||||
Range
|
||||
{ rangeBFirst = definiteA fromAttrToTyp "range" "bFirst" as
|
||||
, rangeBLast = definiteA fromAttrToTyp "range" "bLast" as
|
||||
, rangeUFirst = definiteA fromAttrToTyp "range" "uFirst" as
|
||||
, rangeULast = definiteA fromAttrToTyp "range" "uLast" as
|
||||
, rangeBMin = definiteA fromAttrToTyp "range" "bMin" as
|
||||
, rangeBMax = definiteA fromAttrToTyp "range" "bMax" as
|
||||
, rangeV = possibleA fromAttrToStr "v" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrTyp "bFirst" (rangeBFirst v)
|
||||
, toAttrFrTyp "bLast" (rangeBLast v)
|
||||
, toAttrFrTyp "uFirst" (rangeUFirst v)
|
||||
, toAttrFrTyp "uLast" (rangeULast v)
|
||||
, toAttrFrTyp "bMin" (rangeBMin v)
|
||||
, toAttrFrTyp "bMax" (rangeBMax v)
|
||||
, maybeToAttr toAttrFrStr "v" (rangeV v)
|
||||
]
|
||||
|
||||
instance HTypeable Iso2022 where
|
||||
toHType x = Defined "iso2022" [] []
|
||||
instance XmlContent Iso2022 where
|
||||
toContents (Iso2022 a b) =
|
||||
[CElem (Elem (N "iso2022") [] (maybe [] toContents a ++
|
||||
toContents b)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["iso2022"]
|
||||
; interior e $ return (Iso2022) `apply` optional parseContents
|
||||
`apply` parseContents
|
||||
} `adjustErr` ("in <iso2022>, "++)
|
||||
|
||||
instance HTypeable Default2022 where
|
||||
toHType x = Defined "default2022" [] []
|
||||
instance XmlContent Default2022 where
|
||||
toContents as =
|
||||
[CElem (Elem (N "default2022") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["default2022"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <default2022>, "++)
|
||||
instance XmlAttributes Default2022 where
|
||||
fromAttrs as =
|
||||
Default2022
|
||||
{ default2022Name = definiteA fromAttrToStr "default2022" "name" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "name" (default2022Name v)
|
||||
]
|
||||
|
||||
instance HTypeable Escape where
|
||||
toHType x = Defined "escape" [] []
|
||||
instance XmlContent Escape where
|
||||
toContents as =
|
||||
[CElem (Elem (N "escape") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["escape"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <escape>, "++)
|
||||
instance XmlAttributes Escape where
|
||||
fromAttrs as =
|
||||
Escape
|
||||
{ escapeSequence = definiteA fromAttrToStr "escape" "sequence" as
|
||||
, escapeName = definiteA fromAttrToStr "escape" "name" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "sequence" (escapeSequence v)
|
||||
, toAttrFrStr "name" (escapeName v)
|
||||
]
|
||||
|
||||
instance HTypeable Si where
|
||||
toHType x = Defined "si" [] []
|
||||
instance XmlContent Si where
|
||||
toContents (Si a) =
|
||||
[CElem (Elem (N "si") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["si"]
|
||||
; interior e $ return (Si) `apply` parseContents
|
||||
} `adjustErr` ("in <si>, "++)
|
||||
|
||||
instance HTypeable So where
|
||||
toHType x = Defined "so" [] []
|
||||
instance XmlContent So where
|
||||
toContents (So a) =
|
||||
[CElem (Elem (N "so") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["so"]
|
||||
; interior e $ return (So) `apply` parseContents
|
||||
} `adjustErr` ("in <so>, "++)
|
||||
|
||||
instance HTypeable Ss2 where
|
||||
toHType x = Defined "ss2" [] []
|
||||
instance XmlContent Ss2 where
|
||||
toContents (Ss2 a) =
|
||||
[CElem (Elem (N "ss2") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["ss2"]
|
||||
; interior e $ return (Ss2) `apply` parseContents
|
||||
} `adjustErr` ("in <ss2>, "++)
|
||||
|
||||
instance HTypeable Ss3 where
|
||||
toHType x = Defined "ss3" [] []
|
||||
instance XmlContent Ss3 where
|
||||
toContents (Ss3 a) =
|
||||
[CElem (Elem (N "ss3") [] (toContents a)) ()]
|
||||
parseContents = do
|
||||
{ e@(Elem _ [] _) <- element ["ss3"]
|
||||
; interior e $ return (Ss3) `apply` parseContents
|
||||
} `adjustErr` ("in <ss3>, "++)
|
||||
|
||||
instance HTypeable Designator where
|
||||
toHType x = Defined "designator" [] []
|
||||
instance XmlContent Designator where
|
||||
toContents as =
|
||||
[CElem (Elem (N "designator") (toAttrs as) []) ()]
|
||||
parseContents = do
|
||||
{ (Elem _ as []) <- element ["designator"]
|
||||
; return (fromAttrs as)
|
||||
} `adjustErr` ("in <designator>, "++)
|
||||
instance XmlAttributes Designator where
|
||||
fromAttrs as =
|
||||
Designator
|
||||
{ designatorSequence = definiteA fromAttrToStr "designator" "sequence" as
|
||||
, designatorName = definiteA fromAttrToStr "designator" "name" as
|
||||
}
|
||||
toAttrs v = catMaybes
|
||||
[ toAttrFrStr "sequence" (designatorSequence v)
|
||||
, toAttrFrStr "name" (designatorName v)
|
||||
]
|
||||
|
||||
|
||||
|
||||
{-Done-}
|
||||
316
Data/Encoding/Preprocessor/XMLMappingBuilder.hs
Normal file
316
Data/Encoding/Preprocessor/XMLMappingBuilder.hs
Normal file
@ -0,0 +1,316 @@
|
||||
{-# LANGUAGE ParallelListComp #-}
|
||||
module Data.Encoding.Preprocessor.XMLMappingBuilder where
|
||||
|
||||
import Data.Word
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
import Data.Char
|
||||
import Data.Map (Map)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Array.Static.Builder
|
||||
import Data.CharMap.Builder
|
||||
import Data.Encoding.Preprocessor.XMLMapping
|
||||
import Distribution.Simple.PreProcess
|
||||
import System.FilePath
|
||||
import Text.XML.HaXml.OneOfN
|
||||
import Text.XML.HaXml.XmlContent
|
||||
import Control.Exception (assert)
|
||||
|
||||
xmlPreprocessor :: PreProcessor
|
||||
xmlPreprocessor = PreProcessor
|
||||
{ platformIndependent = True
|
||||
, runPreProcessor = \src trg verb -> do
|
||||
createModuleFromFile src trg
|
||||
}
|
||||
|
||||
description :: CharacterMapping -> Maybe String
|
||||
description (CharacterMapping attrs _ _ _) = characterMappingDescription attrs
|
||||
|
||||
createModuleFromFile (sbase,sfile) (tbase,tfile) = do
|
||||
xml <- testFile (sbase </> sfile)
|
||||
let (dir,fn) = splitFileName sfile
|
||||
let (bname,ext) = splitExtensions fn
|
||||
let dirs = splitDirectories dir
|
||||
let body = buildDecisionTree minBound maxBound "ch" (encodingElements xml)
|
||||
let body2 = createDecoding (states xml) (decodingElements xml)
|
||||
let mpname = "encoding_map_"++bname
|
||||
let mp = buildCharMap $ [SingleMapping c w | (c,w) <- assignments xml]
|
||||
++[ RangeMapping
|
||||
st end
|
||||
(foldl (\v (w,mi,ma) -> v*((fromIntegral $ ma-mi)+1) + (fromIntegral (w-mi))) 0 (zip3 bfirst bmin bmax))
|
||||
[(min,max-min+1) | min <- bmin | max <- bmax]
|
||||
| (st,end,bfirst,blast,bmin,bmax) <- ranges xml ]
|
||||
writeFile (tbase</>tfile) $ unlines $
|
||||
["{- This file has been auto-generated. Do not edit it. -}"
|
||||
,"{-# LANGUAGE MagicHash,DeriveDataTypeable #-}"]++
|
||||
(case description xml of
|
||||
Nothing -> []
|
||||
Just str -> ["{- | "++str++" -}"]) ++
|
||||
["module "++concat (intersperse "." (dirs++[bname]))
|
||||
," ("++bname++"("++bname++"))"
|
||||
," where"
|
||||
,""
|
||||
,"import Control.Throws"
|
||||
,"import Data.Encoding.Base"
|
||||
,"import Data.Encoding.ByteSink"
|
||||
,"import Data.Encoding.ByteSource"
|
||||
,"import Data.Encoding.Exception"
|
||||
,"import Data.Array.Static"
|
||||
,"import Data.Map.Static"
|
||||
,"import Data.CharMap"
|
||||
,"import Data.Char"
|
||||
,"import Data.Word"
|
||||
,"import Data.Typeable"
|
||||
,""
|
||||
,"data "++bname++" = "++bname
|
||||
," deriving (Eq,Show,Typeable)"
|
||||
,""
|
||||
,mpname++" :: CharMap"
|
||||
,mpname++" = "++mp
|
||||
,""
|
||||
,"instance Encoding "++bname++" where"
|
||||
," encodeChar _ ch = mapEncode ch "++mpname
|
||||
," decodeChar _ = "++body2
|
||||
," encodeable _ ch = mapMember ch "++mpname
|
||||
]
|
||||
|
||||
decodingValueRange :: [(Word8,Word8)] -> DecodingElement -> (Int,Int)
|
||||
decodingValueRange path (DecodingElement c ws)
|
||||
= let v = foldl (\n (w,(lo,up)) -> n*((fromIntegral $ up-lo)+1) + (fromIntegral $ w - lo)) 0 (zip ws path)
|
||||
in (v,v)
|
||||
decodingValueRange path (DecodingRange first last bfirst blast bmin bmax)
|
||||
= assert (zip bmin bmax == path) $
|
||||
(decodingValue path bfirst
|
||||
,decodingValue path blast)
|
||||
|
||||
decodingValue :: [(Word8,Word8)] -> [Word8] -> Int
|
||||
decodingValue path ws
|
||||
= foldl (\n (w,(lo,up)) -> n*((fromIntegral $ up-lo) + 1) + (fromIntegral $ w - lo))
|
||||
0 (zip ws path)
|
||||
|
||||
type StateMachine = Map String [(Word8,Word8,String)]
|
||||
|
||||
createDecoding :: StateMachine -> [DecodingElement] -> String
|
||||
createDecoding sm els = create' els [] 0 "FIRST"
|
||||
where
|
||||
create' els path n st = let trans = sortBy (\(s1,e1,st1) (s2,e2,st2) -> compare s1 s2) $ sm Map.! st
|
||||
in "(fetchWord8 >>= \\w"++show n++" -> " ++ tree' n path els trans 0 255++")"
|
||||
|
||||
tree' :: Int -> [(Word8,Word8)] -> [DecodingElement] -> [(Word8,Word8,String)] -> Word8 -> Word8 -> String
|
||||
tree' n path els [] _ _ = illWord $ "w"++show n
|
||||
tree' n path els [(s,e,nst)] bl br
|
||||
= let e1 = if s > bl
|
||||
then "(if w"++show n++" < "++show s++" then "++illWord ("w"++show n)++" else "++e2++")"
|
||||
else e2
|
||||
e2 = if e < br
|
||||
then "(if w"++show n++" > "++show e++" then "++illWord ("w"++show n)++" else "++e3++")"
|
||||
else e3
|
||||
e3 = if nst == "VALID"
|
||||
then array' rpath sels
|
||||
else "{- for "++nst++"-}" ++ create' nels npath (n+1) nst
|
||||
npath = (s,e):path
|
||||
rpath = reverse npath
|
||||
sels = sortBy (comparing (decodingValueRange rpath)) nels
|
||||
nels = filter (\el -> let (ll,lr) = (decodingLimits el)!!n in ll>=s && lr <= e) els
|
||||
in e1
|
||||
tree' n path els trans bl br
|
||||
= let (left,right@((b,_,_):_)) = splitAt (length trans `div` 2) trans
|
||||
(eleft,eright) = partition (\el -> fst ((decodingLimits el)!!n) < b) els
|
||||
in "(if w"++show n++" < "++show b++" then "++tree' n path eleft left bl (b-1)
|
||||
++" else "++tree' n path eright right b br++")"
|
||||
|
||||
array' path els = let grps = groupBy (\e1 e2 -> case e1 of
|
||||
DecodingRange _ _ _ _ _ _ -> False
|
||||
_ -> case e2 of
|
||||
DecodingRange _ _ _ _ _ _ -> False
|
||||
_ -> True
|
||||
) els
|
||||
ranges = map (\(l,u) -> (fromIntegral $ u-l)+1) path
|
||||
val = foldl (\expr (r,n,m) -> "("++expr++"*"++show r++"+(fromIntegral w"++show n++"-"++show m++"))")
|
||||
"0"
|
||||
(zip3 ranges [0..] (map fst path))
|
||||
offset = (product ranges)-1
|
||||
in "(let val = " ++ val ++ " in "++array'' path grps 0 offset++")"
|
||||
|
||||
array'' path [] _ _ = "throwException (IllegalRepresentation ["++concat (intersperse "," (zipWith (\n _ -> "w"++show n) [0..] path))++"])"
|
||||
array'' path [grp] lo up
|
||||
= case grp of
|
||||
[DecodingRange first end bfirst bend bmin bmax] ->
|
||||
let ranges = map (\(l,u) -> (fromIntegral $ u-l)+1) path
|
||||
off = foldl (\v (r,c,m) -> v*r+(fromIntegral $ c-m)) 0 (zip3 ranges bfirst bmin)
|
||||
equalranges = and $ zipWith (==) path (zip bmin bmax)
|
||||
in if equalranges
|
||||
then "(return (chr (val + ("++show (ord first - off)++"))))"
|
||||
else error "Can't have a range that has a different range..."
|
||||
_ -> let chars = fillRange lo $ map (\el@(DecodingElement c _) -> (c,fst $ decodingValueRange path el)) grp
|
||||
in "(return (("++buildStaticArray (lo,up) chars++")!val))"
|
||||
array'' path grps lo up = let (left,right@(brk:_)) = splitAt (length grps `div` 2) grps
|
||||
(off,_) = decodingValueRange path (head brk)
|
||||
in "(if val < "++show off++" then "++array'' path left lo (off-1)
|
||||
++" else "++array'' path right off up++")"
|
||||
|
||||
fillRange :: Int -> [(Char,Int)] -> [Char]
|
||||
fillRange s [] = []
|
||||
fillRange s all@((c,i):cs) = case compare i s of
|
||||
GT -> '\0':fillRange (s+1) all
|
||||
LT -> error $ "Char out of range "++show (take 10 all)
|
||||
EQ -> c:fillRange (s+1) cs
|
||||
|
||||
states :: CharacterMapping -> StateMachine
|
||||
states (CharacterMapping attrs hist val ass)
|
||||
= case val of
|
||||
OneOf2 (Validity (NonEmpty lst)) -> Map.fromListWith (++) $
|
||||
map (\st -> let BS [start] = stateS st
|
||||
end = case stateE st of
|
||||
Nothing -> start
|
||||
Just (BS [rend]) -> rend
|
||||
in (stateType st,[(start,end,stateNext st)])) lst
|
||||
_ -> error "Mapping doesn't contain validity section"
|
||||
|
||||
decodingElements :: CharacterMapping -> [DecodingElement]
|
||||
decodingElements mp = map (\(c,ws) -> DecodingElement c ws) (assignments mp)
|
||||
++ map (\(fi,la,bfi,bla,bmi,bma) -> DecodingRange fi la bfi bla bmi bma) (ranges mp)
|
||||
|
||||
illWord :: String -> String
|
||||
illWord n = "throwException (IllegalCharacter "++n++")"
|
||||
|
||||
decodingLimits :: DecodingElement -> [(Word8,Word8)]
|
||||
decodingLimits (DecodingElement _ ws) = map (\w -> (w,w)) ws
|
||||
decodingLimits (DecodingRange _ _ bfirst blast bmin bmax) = lim' False (zip4 bfirst blast bmin bmax)
|
||||
where
|
||||
lim' dec [] = []
|
||||
lim' dec ((fi,la,mi,ma):xs) = if dec
|
||||
then (mi,ma):(lim' dec xs)
|
||||
else (fi,la):(lim' (fi/=la) xs)
|
||||
|
||||
decodingLength :: DecodingElement -> Int
|
||||
decodingLength (DecodingRange _ _ first _ _ _) = length first
|
||||
decodingLength (DecodingElement _ ws) = length ws
|
||||
|
||||
decodingElementCount :: DecodingElement -> Int
|
||||
decodingElementCount (DecodingRange s e _ _ _ _) = ord e - ord s
|
||||
decodingElementCount (DecodingElement _ _) = 1
|
||||
|
||||
data DecodingElement
|
||||
= DecodingRange Char Char [Word8] [Word8] [Word8] [Word8]
|
||||
| DecodingElement Char [Word8]
|
||||
deriving Show
|
||||
|
||||
norep :: String -> String
|
||||
norep var = "(throwException $ HasNoRepresentation "++var++")"
|
||||
|
||||
buildDecisionTree :: Char -> Char -> String -> [EncodingElement] -> String
|
||||
buildDecisionTree l r var [] = norep var
|
||||
buildDecisionTree l r var [el]
|
||||
= let e1 = if l < startChar el
|
||||
then "(if "++var++" < "++show (startChar el)++" then "++norep var++" else "++e2++")"
|
||||
else e2
|
||||
e2 = if r > endChar el
|
||||
then "(if "++var++" > "++show (endChar el)++" then "++norep var++" else "++e3++")"
|
||||
else e3
|
||||
e3 = buildEncoding el var
|
||||
in e1
|
||||
buildDecisionTree ll lr var els
|
||||
= let (l,r@(sep:_)) = splitAt (length els `div` 2) els
|
||||
in "(if "++var++" < "++show (startChar sep)
|
||||
++" then ("++(buildDecisionTree ll (pred $ startChar sep) var l)++")"
|
||||
++" else ("++(buildDecisionTree (endChar sep) lr var r)++")"
|
||||
++")"
|
||||
|
||||
buildEncoding :: EncodingElement -> String -> String
|
||||
buildEncoding (EncodingRange start end bf bl bmin bmax) var
|
||||
= let ranges :: [Int]
|
||||
ranges = map fromIntegral $ zipWith (-) bmax bmin
|
||||
in "(let num = (ord "++var++") - ("++show (ord start - (foldl (\n (r,vf,vm) -> n*(r+1) + (fromIntegral (vf-vm))) 0 (zip3 ranges bf bmin)))++")"
|
||||
++concat ([ " ; (p"++show n++",r"++show n++") = "
|
||||
++(if n==1 then "num" else "p"++show (n-1))
|
||||
++" `divMod` "++show (r+1)
|
||||
| r <- reverse ranges | n <- [1..] ])
|
||||
++" in "
|
||||
++concat (intersperse " >> " (reverse ["pushWord8 (fromIntegral (r"++show n++" + "++show w++"))" | n <- [1..] | w <- reverse bmin]))
|
||||
++")"
|
||||
buildEncoding (EncodingGroup start end encs) var
|
||||
= let findParams st [] = st
|
||||
findParams st (x:xs) = findParams (case compare (length x) (fst st) of
|
||||
LT -> (fst st,False)
|
||||
GT -> (length x,False)
|
||||
EQ -> st) xs
|
||||
(mx,same) = findParams (length $ head encs,True) (tail encs)
|
||||
in if same
|
||||
then ("(let off = "++show mx++"*(ord "++var++" - "++show (ord start)++") ; arr = "
|
||||
++buildStaticArray (0,(length encs)*mx-1) (concat encs)
|
||||
++" in "
|
||||
++concat (intersperse " >> " ["pushWord8 (arr!(off+"++show (n-1)++"))" | n <- [1..mx]])
|
||||
++")")
|
||||
else ("(let off = "++show (mx+1)++"*((ord "++var++") - "++show (ord start)++") ; arr = "
|
||||
++buildStaticArray (0,(length encs)*(mx+1)-1)
|
||||
(concat [(fromIntegral $ length e)
|
||||
:(e++replicate (mx-length e) 0) | e <- encs])
|
||||
++ "::StaticArray Int Word8"
|
||||
++" ; len = fromIntegral (arr!off)::Int ; bytes = map (\\n -> arr!(off+n)) [1..len]"
|
||||
++" in mapM_ pushWord8 bytes)")
|
||||
|
||||
data EncodingElement
|
||||
= EncodingRange Char Char [Word8] [Word8] [Word8] [Word8]
|
||||
| EncodingGroup Char Char [[Word8]]
|
||||
deriving Show
|
||||
|
||||
mergeBy :: (a -> a -> Ordering) -> [a] -> [a] -> [a]
|
||||
mergeBy f [] ys = ys
|
||||
mergeBy f xs [] = xs
|
||||
mergeBy f (x:xs) (y:ys)
|
||||
= case f x y of
|
||||
LT -> x:mergeBy f xs (y:ys)
|
||||
_ -> y:mergeBy f (x:xs) ys
|
||||
|
||||
startChar :: EncodingElement -> Char
|
||||
startChar (EncodingRange c _ _ _ _ _) = c
|
||||
startChar (EncodingGroup c _ _) = c
|
||||
|
||||
endChar :: EncodingElement -> Char
|
||||
endChar (EncodingRange _ c _ _ _ _) = c
|
||||
endChar (EncodingGroup _ c _) = c
|
||||
|
||||
|
||||
encodingElements :: CharacterMapping -> [EncodingElement]
|
||||
encodingElements mp = mergeBy (comparing startChar)
|
||||
(buildGroups $ sortAssignments $ assignments mp)
|
||||
(encodingRanges $ ranges mp)
|
||||
|
||||
assignments :: CharacterMapping -> [(Char,[Word8])]
|
||||
assignments (CharacterMapping _ _ _ (Assignments _ ass _ _ _ ranges))
|
||||
= map (\a -> let CP [cp] = aU a
|
||||
BS bs = aB a
|
||||
in (cp,bs)
|
||||
) ass
|
||||
|
||||
encodingRanges :: [(Char,Char,[Word8],[Word8],[Word8],[Word8])] -> [EncodingElement]
|
||||
encodingRanges lst = sortBy (comparing (\(EncodingRange c _ _ _ _ _) -> c)) $
|
||||
map (\(ufirst,ulast,bfirst,blast,bmin,bmax) -> EncodingRange ufirst ulast bfirst blast bmin bmax) lst
|
||||
|
||||
ranges :: CharacterMapping -> [(Char,Char,[Word8],[Word8],[Word8],[Word8])]
|
||||
ranges (CharacterMapping _ _ _ (Assignments _ ass _ _ _ ranges))
|
||||
= map (\r -> let BS bfirst = rangeBFirst r
|
||||
BS blast = rangeBLast r
|
||||
CP [ufirst] = rangeUFirst r
|
||||
CP [ulast] = rangeULast r
|
||||
BS bmin = rangeBMin r
|
||||
BS bmax = rangeBMax r
|
||||
in (ufirst,ulast,bfirst,blast,bmin,bmax)
|
||||
) ranges
|
||||
|
||||
|
||||
sortAssignments :: [(Char,[Word8])] -> [(Char,[Word8])]
|
||||
sortAssignments = sortBy (comparing fst)
|
||||
|
||||
buildGroups :: [(Char,[Word8])] -> [EncodingElement]
|
||||
buildGroups [] = []
|
||||
buildGroups ((c,bs):rest) = (EncodingGroup c end (bs:wrds)):buildGroups oth
|
||||
where
|
||||
(end,wrds,oth) = group c rest
|
||||
|
||||
group n [] = (n,[],[])
|
||||
group n all@((c,bs):rest)
|
||||
| succ n == c = let (e,res,oth) = group c rest
|
||||
in (e,bs:res,oth)
|
||||
| otherwise = (n,[],all)
|
||||
7093
Data/Encoding/ShiftJIS.xml
Normal file
7093
Data/Encoding/ShiftJIS.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -79,3 +79,4 @@ instance Encoding UTF16 where
|
||||
return (c:cs)
|
||||
Right bom -> decode bom
|
||||
decode enc = untilM sourceEmpty (decodeChar enc)
|
||||
encodeable _ c = (c > '\xDFFF' && c <= '\x10FFFF') || c < '\xD800'
|
||||
|
||||
@ -44,3 +44,4 @@ instance Encoding UTF32 where
|
||||
rest <- untilM sourceEmpty (decodeChar UTF32)
|
||||
return ((chr $ fromIntegral ch):rest)
|
||||
decode enc = untilM sourceEmpty (decodeChar enc)
|
||||
encodeable _ _ = True
|
||||
|
||||
@ -38,6 +38,7 @@ instance Encoding UTF8 where
|
||||
where
|
||||
n = ord c
|
||||
p8 = pushWord8.fromIntegral
|
||||
encodeable _ c = c <= '\x10FFFF'
|
||||
decodeChar UTF8 = do
|
||||
w1 <- fetchWord8
|
||||
case () of
|
||||
@ -68,11 +69,13 @@ instance Encoding UTF8 where
|
||||
v2 = w2 .&. 0x3F
|
||||
v3 = w3 .&. 0x3F
|
||||
v4 = w4 .&. 0x3F
|
||||
return $ chr $
|
||||
((fromIntegral v1) `shiftL` 18)
|
||||
v = ((fromIntegral v1) `shiftL` 18)
|
||||
.|. ((fromIntegral v2) `shiftL` 12)
|
||||
.|. ((fromIntegral v3) `shiftL` 6)
|
||||
.|. (fromIntegral v4)
|
||||
if v <= 0x10FFFF
|
||||
then return $ chr v
|
||||
else throwException (IllegalRepresentation [w1,w2,w3,w4])
|
||||
| otherwise -> throwException (IllegalCharacter w1)
|
||||
decodeChar UTF8Strict = do
|
||||
w1 <- fetchWord8
|
||||
@ -108,13 +111,15 @@ instance Encoding UTF8 where
|
||||
v2 = w2 .&. 0x3F
|
||||
v3 = w3 .&. 0x3F
|
||||
v4 = w4 .&. 0x3F
|
||||
if v1 == 0 && v2 < 0x10
|
||||
then throwException (IllegalRepresentation [w1,w2,w3,w4])
|
||||
else return $ chr $
|
||||
((fromIntegral v1) `shiftL` 18)
|
||||
v = ((fromIntegral v1) `shiftL` 18)
|
||||
.|. ((fromIntegral v2) `shiftL` 12)
|
||||
.|. ((fromIntegral v3) `shiftL` 6)
|
||||
.|. (fromIntegral v4)
|
||||
if v1 == 0 && v2 < 0x10
|
||||
then throwException (IllegalRepresentation [w1,w2,w3,w4])
|
||||
else (if v <= 0x10FFFF
|
||||
then return $ chr v
|
||||
else throwException (IllegalRepresentation [w1,w2,w3,w4]))
|
||||
| otherwise -> throwException (IllegalCharacter w1)
|
||||
where
|
||||
invalidExtend wrd = wrd .&. 0xC0 /= 0x80
|
||||
|
||||
28
Data/Map/Static.hs
Normal file
28
Data/Map/Static.hs
Normal file
@ -0,0 +1,28 @@
|
||||
module Data.Map.Static where
|
||||
|
||||
import Data.Static
|
||||
import Data.Array.Static
|
||||
|
||||
import GHC.Exts
|
||||
|
||||
data StaticMap i e = StaticMap (StaticArray Int i) (StaticArray Int e)
|
||||
|
||||
lookup :: (StaticElement i,StaticElement e,Ord i) => i -> StaticMap i e -> Maybe e
|
||||
lookup ind (StaticMap idx els) = lookup' 1
|
||||
where
|
||||
lookup' n = if n > snd (bounds idx)
|
||||
then Nothing
|
||||
else case compare ind (idx!n) of
|
||||
LT -> lookup' (n * 2)
|
||||
GT -> lookup' ((n * 2) + 1)
|
||||
EQ -> Just $ els!n
|
||||
|
||||
member :: (StaticElement i,StaticElement e,Ord i) => i -> StaticMap i e -> Bool
|
||||
member ind (StaticMap idx _) = lookup' 1
|
||||
where
|
||||
lookup' n = if n > snd (bounds idx)
|
||||
then False
|
||||
else case compare ind (idx!n) of
|
||||
LT -> lookup' (n * 2)
|
||||
GT -> lookup' ((n * 2) + 1)
|
||||
EQ -> True
|
||||
42
Data/Map/Static/Builder.hs
Normal file
42
Data/Map/Static/Builder.hs
Normal file
@ -0,0 +1,42 @@
|
||||
module Data.Map.Static.Builder where
|
||||
|
||||
import Data.Static
|
||||
import Data.Array.Static.Builder
|
||||
|
||||
import Data.List
|
||||
import Data.Ord
|
||||
import Data.Bits
|
||||
|
||||
buildStaticMap :: (StaticElement i,StaticElement e,Ord i) => [(i,e)] -> String
|
||||
buildStaticMap lst = let step :: Int -> [(i,e)] -> [(Int,(i,e))]
|
||||
step n chunk = let ss = findSplitSize (length chunk)
|
||||
(h,d:t) = splitAt ss chunk
|
||||
in if null chunk
|
||||
then []
|
||||
else (n,d):((step (n*2) h)++(step (n*2+1) t))
|
||||
checkHeap n [] = []
|
||||
checkHeap n ((c,x):xs) = if c == n
|
||||
then x:checkHeap (n+1) xs
|
||||
else error $ "Heap is not consistent: Should be "++show n++" but is "++show c
|
||||
uheap = sortBy (comparing fst) (step 1 slst)
|
||||
slst = sortBy (comparing fst) lst
|
||||
heap = checkHeap 1 $ sortBy (comparing fst) (step 1 slst)
|
||||
len = length heap
|
||||
in "StaticMap ("++buildStaticArray (1,len) (map fst heap)++") ("++buildStaticArray (1,len) (map snd heap)++")"
|
||||
|
||||
maxSize :: Int -> Int
|
||||
maxSize d = (1 `shiftL` d) - 1
|
||||
|
||||
treeDepth :: Int -> Int
|
||||
treeDepth sz = find' [0..]
|
||||
where
|
||||
find' (x:xs) = if 1 `shiftL` x > sz
|
||||
then x
|
||||
else find' xs
|
||||
|
||||
findSplitSize :: Int -> Int
|
||||
findSplitSize len = let depth = treeDepth len
|
||||
free = (maxSize depth) - len
|
||||
in if free <= (1 `shiftL` (depth - 2))
|
||||
then maxSize (depth - 1)
|
||||
else len - (maxSize (depth - 2)) - 1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user