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
|
||||||
(module Data.Encoding.Exception
|
(module Data.Encoding.Exception
|
||||||
,module Data.Encoding.ByteSource
|
,module Data.Encoding.ByteSource
|
||||||
@ -19,6 +19,7 @@ module Data.Encoding
|
|||||||
,decodeStrictByteString
|
,decodeStrictByteString
|
||||||
,decodeStrictByteStringExplicit
|
,decodeStrictByteStringExplicit
|
||||||
,encodingFromString
|
,encodingFromString
|
||||||
|
,encodingFromStringExplicit
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
@ -71,17 +72,31 @@ import Data.Encoding.CP1258
|
|||||||
import Data.Encoding.KOI8R
|
import Data.Encoding.KOI8R
|
||||||
import Data.Encoding.KOI8U
|
import Data.Encoding.KOI8U
|
||||||
import Data.Encoding.GB18030
|
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 Data.Char
|
||||||
import Text.Regex
|
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 :: (Encoding enc1,Encoding enc2,ByteSource m,ByteSink m) => enc1 -> enc2 -> m ()
|
||||||
recode e1 e2 = untilM_ sourceEmpty (decodeChar e1 >>= encodeChar e2)
|
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
|
decodeStrictByteStringExplicit e str = evalStateT (decode e) str
|
||||||
|
|
||||||
-- | Like 'encodingFromString' but returns 'Nothing' instead of throwing an error
|
-- | Like 'encodingFromString' but returns 'Nothing' instead of throwing an error
|
||||||
encodingFromStringMaybe :: String -> Maybe DynEncoding
|
encodingFromStringExplicit :: String -> Maybe DynEncoding
|
||||||
encodingFromStringMaybe codeName = case (normalizeEncoding codeName) of
|
encodingFromStringExplicit codeName = case (normalizeEncoding codeName) of
|
||||||
-- ASCII
|
-- ASCII
|
||||||
"ascii" -> Just $ DynEncoding ASCII
|
"ascii" -> Just $ DynEncoding ASCII
|
||||||
"646" -> Just $ DynEncoding ASCII
|
"646" -> Just $ DynEncoding ASCII
|
||||||
@ -306,6 +321,35 @@ encodingFromStringMaybe codeName = case (normalizeEncoding codeName) of
|
|||||||
-- GB18030
|
-- GB18030
|
||||||
"gb18030" -> Just $ DynEncoding GB18030
|
"gb18030" -> Just $ DynEncoding GB18030
|
||||||
"gb18030_2000" -> 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
|
-- defaults to nothing
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
where
|
where
|
||||||
@ -317,4 +361,4 @@ encodingFromString :: String -> DynEncoding
|
|||||||
encodingFromString str = maybe
|
encodingFromString str = maybe
|
||||||
(error $ "Data.Encoding.encodingFromString: Unknown encoding: "++show str)
|
(error $ "Data.Encoding.encodingFromString: Unknown encoding: "++show str)
|
||||||
id
|
id
|
||||||
(encodingFromStringMaybe str)
|
(encodingFromStringExplicit str)
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
{-# LANGUAGE DeriveDataTypeable #-}
|
{-# LANGUAGE DeriveDataTypeable #-}
|
||||||
module Data.Encoding.ASCII where
|
module Data.Encoding.ASCII where
|
||||||
|
|
||||||
|
import Control.Throws
|
||||||
import Data.Char
|
import Data.Char
|
||||||
import Data.Encoding.Base
|
import Data.Encoding.Base
|
||||||
import Data.Encoding.ByteSource
|
import Data.Encoding.ByteSource
|
||||||
import Data.Encoding.ByteSink
|
import Data.Encoding.ByteSink
|
||||||
|
import Data.Encoding.Exception
|
||||||
import Data.Typeable
|
import Data.Typeable
|
||||||
|
|
||||||
data ASCII = ASCII deriving (Show,Eq,Typeable)
|
data ASCII = ASCII deriving (Show,Eq,Typeable)
|
||||||
@ -13,5 +15,7 @@ instance Encoding ASCII where
|
|||||||
decodeChar _ = do
|
decodeChar _ = do
|
||||||
w <- fetchWord8
|
w <- fetchWord8
|
||||||
return $ chr $ fromIntegral w
|
return $ chr $ fromIntegral w
|
||||||
encodeChar _ c = do
|
encodeChar enc c
|
||||||
pushWord8 $ fromIntegral $ ord 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
|
module Data.Encoding.Base where
|
||||||
|
|
||||||
import Data.Encoding.Exception
|
import Data.Encoding.Exception
|
||||||
@ -5,18 +6,49 @@ import Data.Encoding.ByteSource
|
|||||||
import Data.Encoding.ByteSink
|
import Data.Encoding.ByteSink
|
||||||
|
|
||||||
import Control.Throws
|
import Control.Throws
|
||||||
import Data.Array as Array
|
import Data.Array.Unboxed as Array
|
||||||
import Data.Map as Map hiding ((!))
|
import Data.Map as Map hiding ((!))
|
||||||
import Data.Word
|
import Data.Word
|
||||||
import Data.Char
|
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
|
class Encoding enc where
|
||||||
|
-- | Read a single character of a ByteSource
|
||||||
decodeChar :: ByteSource m => enc -> m Char
|
decodeChar :: ByteSource m => enc -> m Char
|
||||||
|
-- | Encode a single character and write it to a ByteSink
|
||||||
encodeChar :: ByteSink m => enc -> Char -> m ()
|
encodeChar :: ByteSink m => enc -> Char -> m ()
|
||||||
|
-- | Read characters from a ByteSource until it is empty
|
||||||
decode :: ByteSource m => enc -> m String
|
decode :: ByteSource m => enc -> m String
|
||||||
decode e = untilM sourceEmpty (decodeChar e)
|
decode e = untilM sourceEmpty (decodeChar e)
|
||||||
|
-- | Encode a String and write it to a ByteSink
|
||||||
encode :: ByteSink m => enc -> String -> m ()
|
encode :: ByteSink m => enc -> String -> m ()
|
||||||
encode e = mapM_ (encodeChar e)
|
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 :: Monad m => m Bool -> m a -> m [a]
|
||||||
untilM check act = do
|
untilM check act = do
|
||||||
@ -37,9 +69,33 @@ encodeWithMap mp c = case Map.lookup c mp of
|
|||||||
Nothing -> throwException $ HasNoRepresentation c
|
Nothing -> throwException $ HasNoRepresentation c
|
||||||
Just v -> pushWord8 v
|
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
|
decodeWithArray arr = do
|
||||||
w <- fetchWord8
|
w <- fetchWord8
|
||||||
case arr!w of
|
let res = arr!w
|
||||||
Nothing -> throwException $ IllegalCharacter w
|
if res < 0
|
||||||
Just c -> return c
|
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
|
Nothing -> punyDecode base nbase
|
||||||
Just ww -> throwException (IllegalCharacter ww)
|
Just ww -> throwException (IllegalCharacter ww)
|
||||||
Nothing -> punyDecode [] wrds
|
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
|
module Data.Encoding.ByteSink where
|
||||||
|
|
||||||
import Data.Encoding.Exception
|
import Data.Encoding.Exception
|
||||||
@ -11,6 +11,7 @@ import Data.Word
|
|||||||
import Data.Foldable (toList)
|
import Data.Foldable (toList)
|
||||||
import Control.Throws
|
import Control.Throws
|
||||||
import Control.Exception.Extensible
|
import Control.Exception.Extensible
|
||||||
|
import Control.Applicative
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Monad.Identity
|
import Control.Monad.Identity
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
@ -80,6 +81,13 @@ instance ByteSink PutM where
|
|||||||
|
|
||||||
newtype PutME a = PutME (Either EncodingException (PutM (),a))
|
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
|
instance Monad PutME where
|
||||||
return x = PutME $ Right (return (),x)
|
return x = PutME $ Right (return (),x)
|
||||||
(PutME x) >>= g = PutME $ do
|
(PutME x) >>= g = PutME $ do
|
||||||
@ -101,22 +109,26 @@ instance ByteSink PutME where
|
|||||||
pushWord64be w = PutME $ Right (putWord64be w,())
|
pushWord64be w = PutME $ Right (putWord64be w,())
|
||||||
pushWord64le w = PutME $ Right (putWord64le w,())
|
pushWord64le w = PutME $ Right (putWord64le w,())
|
||||||
|
|
||||||
|
#if MIN_VERSION_base(4,3,0)
|
||||||
|
#else
|
||||||
instance Monad (Either EncodingException) where
|
instance Monad (Either EncodingException) where
|
||||||
return x = Right x
|
return x = Right x
|
||||||
Left err >>= g = Left err
|
Left err >>= g = Left err
|
||||||
Right x >>= g = g x
|
Right x >>= g = g x
|
||||||
|
#endif
|
||||||
|
|
||||||
instance Throws EncodingException (State (Seq Char)) where
|
instance (Monad m,Throws EncodingException m) => ByteSink (StateT (Seq Char) m) where
|
||||||
throwException = throw
|
|
||||||
|
|
||||||
instance ByteSink (State (Seq Char)) where
|
|
||||||
pushWord8 x = modify (|> (chr $ fromIntegral x))
|
|
||||||
|
|
||||||
instance ByteSink (StateT (Seq Char) (Either EncodingException)) where
|
|
||||||
pushWord8 x = modify (|> (chr $ fromIntegral x))
|
pushWord8 x = modify (|> (chr $ fromIntegral x))
|
||||||
|
|
||||||
newtype StrictSink a = StrictS (Ptr Word8 -> Int -> Int -> IO (a,Ptr Word8,Int,Int))
|
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
|
instance Monad StrictSink where
|
||||||
return x = StrictS $ \cstr pos max -> return (x,cstr,pos,max)
|
return x = StrictS $ \cstr pos max -> return (x,cstr,pos,max)
|
||||||
(StrictS f) >>= g = StrictS (\cstr pos max -> do
|
(StrictS f) >>= g = StrictS (\cstr pos max -> do
|
||||||
@ -143,6 +155,13 @@ instance ByteSink StrictSink where
|
|||||||
|
|
||||||
newtype StrictSinkE a = StrictSinkE (StrictSink (Either EncodingException a))
|
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
|
instance Monad StrictSinkE where
|
||||||
return = StrictSinkE . return . Right
|
return = StrictSinkE . return . Right
|
||||||
(StrictSinkE s) >>= g = StrictSinkE $ do
|
(StrictSinkE s) >>= g = StrictSinkE $ do
|
||||||
@ -170,6 +189,13 @@ createStrict sink = createStrictWithLen sink 32
|
|||||||
|
|
||||||
newtype StrictSinkExplicit a = StrictSinkExplicit (StrictSink (Either EncodingException a))
|
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
|
instance Monad StrictSinkExplicit where
|
||||||
return = (StrictSinkExplicit).return.Right
|
return = (StrictSinkExplicit).return.Right
|
||||||
(StrictSinkExplicit sink) >>= f
|
(StrictSinkExplicit sink) >>= f
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses #-}
|
{-# LANGUAGE FlexibleInstances,FlexibleContexts,MultiParamTypeClasses,CPP #-}
|
||||||
module Data.Encoding.ByteSource where
|
module Data.Encoding.ByteSource where
|
||||||
|
|
||||||
import Data.Encoding.Exception
|
import Data.Encoding.Exception
|
||||||
@ -6,7 +6,9 @@ import Data.Encoding.Exception
|
|||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.Binary.Get
|
import Data.Binary.Get
|
||||||
import Data.Char
|
import Data.Char
|
||||||
|
import Data.Maybe
|
||||||
import Data.Word
|
import Data.Word
|
||||||
|
import Control.Applicative as A
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Monad.Identity
|
import Control.Monad.Identity
|
||||||
import Control.Monad.Reader
|
import Control.Monad.Reader
|
||||||
@ -19,6 +21,9 @@ import System.IO
|
|||||||
class (Monad m,Throws DecodingException m) => ByteSource m where
|
class (Monad m,Throws DecodingException m) => ByteSource m where
|
||||||
sourceEmpty :: m Bool
|
sourceEmpty :: m Bool
|
||||||
fetchWord8 :: m Word8
|
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 :: m Word16
|
||||||
fetchWord16be = do
|
fetchWord16be = do
|
||||||
w1 <- fetchWord8
|
w1 <- fetchWord8
|
||||||
@ -94,6 +99,20 @@ instance Throws DecodingException Get where
|
|||||||
instance ByteSource Get where
|
instance ByteSource Get where
|
||||||
sourceEmpty = isEmpty
|
sourceEmpty = isEmpty
|
||||||
fetchWord8 = getWord8
|
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
|
fetchWord16be = getWord16be
|
||||||
fetchWord16le = getWord16le
|
fetchWord16le = getWord16le
|
||||||
fetchWord32be = getWord32be
|
fetchWord32be = getWord32be
|
||||||
@ -101,54 +120,55 @@ instance ByteSource Get where
|
|||||||
fetchWord64be = getWord64be
|
fetchWord64be = getWord64be
|
||||||
fetchWord64le = getWord64le
|
fetchWord64le = getWord64le
|
||||||
|
|
||||||
instance Throws DecodingException (State [Char]) where
|
fetchAheadState act = do
|
||||||
throwException = throw
|
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
|
sourceEmpty = gets null
|
||||||
fetchWord8 = do
|
fetchWord8 = do
|
||||||
chs <- get
|
chs <- get
|
||||||
case chs of
|
case chs of
|
||||||
[] -> throw UnexpectedEnd
|
[] -> throwException UnexpectedEnd
|
||||||
c:cs -> do
|
c:cs -> do
|
||||||
put cs
|
put cs
|
||||||
return (fromIntegral $ ord c)
|
return (fromIntegral $ ord c)
|
||||||
|
fetchAhead = fetchAheadState
|
||||||
|
|
||||||
|
#if MIN_VERSION_base(4,3,0)
|
||||||
|
#else
|
||||||
instance Monad (Either DecodingException) where
|
instance Monad (Either DecodingException) where
|
||||||
return = Right
|
return = Right
|
||||||
(Left err) >>= g = Left err
|
(Left err) >>= g = Left err
|
||||||
(Right x) >>= g = g x
|
(Right x) >>= g = g x
|
||||||
|
#endif
|
||||||
|
|
||||||
instance ByteSource (StateT [Char] (Either DecodingException)) where
|
instance ByteSource (StateT [Char] (Either DecodingException)) where
|
||||||
sourceEmpty = gets null
|
sourceEmpty = gets null
|
||||||
fetchWord8 = do
|
fetchWord8 = do
|
||||||
chs <- get
|
chs <- get
|
||||||
case chs of
|
case chs of
|
||||||
[] -> throwException UnexpectedEnd --handleDecodingError UnexpectedEnd
|
[] -> throwException UnexpectedEnd
|
||||||
c:cs -> do
|
c:cs -> do
|
||||||
put cs
|
put cs
|
||||||
return (fromIntegral $ ord c)
|
return (fromIntegral $ ord c)
|
||||||
|
fetchAhead = fetchAheadState
|
||||||
|
|
||||||
instance Throws DecodingException (State BS.ByteString) where
|
instance (Monad m,Throws DecodingException m) => ByteSource (StateT BS.ByteString m) 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
|
|
||||||
sourceEmpty = gets BS.null
|
sourceEmpty = gets BS.null
|
||||||
fetchWord8 = StateT (\str -> case BS.uncons str of
|
fetchWord8 = StateT (\str -> case BS.uncons str of
|
||||||
Nothing -> Left UnexpectedEnd
|
Nothing -> throwException UnexpectedEnd
|
||||||
Just ns -> Right ns)
|
Just (c,cs) -> return (c,cs))
|
||||||
|
fetchAhead = fetchAheadState
|
||||||
|
|
||||||
instance ByteSource (StateT LBS.ByteString (Either DecodingException)) where
|
instance ByteSource (StateT LBS.ByteString (Either DecodingException)) where
|
||||||
sourceEmpty = gets LBS.null
|
sourceEmpty = gets LBS.null
|
||||||
fetchWord8 = StateT (\str -> case LBS.uncons str of
|
fetchWord8 = StateT (\str -> case LBS.uncons str of
|
||||||
Nothing -> Left UnexpectedEnd
|
Nothing -> Left UnexpectedEnd
|
||||||
Just ns -> Right ns)
|
Just ns -> Right ns)
|
||||||
|
fetchAhead = fetchAheadState
|
||||||
|
|
||||||
instance ByteSource (ReaderT Handle IO) where
|
instance ByteSource (ReaderT Handle IO) where
|
||||||
sourceEmpty = do
|
sourceEmpty = do
|
||||||
@ -159,3 +179,9 @@ instance ByteSource (ReaderT Handle IO) where
|
|||||||
liftIO $ do
|
liftIO $ do
|
||||||
ch <- hGetChar h
|
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 @@
|
|||||||
#
|
#Implements the Windows-1250 encoding.
|
||||||
# Name: cp1250 to Unicode table
|
#For details, refer to <http://en.wikipedia.org/wiki/Windows-1250>.
|
||||||
# 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
|
|
||||||
#
|
|
||||||
0x00 0x0000 #NULL
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
0x00 0x0000 #NULL
|
||||||
0x01 0x0001 #START OF HEADING
|
0x01 0x0001 #START OF HEADING
|
||||||
0x02 0x0002 #START OF TEXT
|
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
|
data EncodingException
|
||||||
= HasNoRepresentation Char -- ^ Thrown if a specific character
|
= HasNoRepresentation Char -- ^ Thrown if a specific character
|
||||||
-- is not representable in an encoding.
|
-- is not representable in an encoding.
|
||||||
deriving (Eq,Show,Typeable)
|
deriving (Eq,Ord,Show,Read,Typeable)
|
||||||
|
|
||||||
instance Exception EncodingException
|
instance Exception EncodingException
|
||||||
|
|
||||||
@ -25,6 +25,6 @@ data DecodingException
|
|||||||
| OutOfRange -- ^ the decoded value was out of the unicode range
|
| OutOfRange -- ^ the decoded value was out of the unicode range
|
||||||
| IllegalRepresentation [Word8] -- ^ The character sequence encodes a
|
| IllegalRepresentation [Word8] -- ^ The character sequence encodes a
|
||||||
-- character, but is illegal.
|
-- character, but is illegal.
|
||||||
deriving (Eq,Show,Typeable)
|
deriving (Eq,Ord,Show,Read,Typeable)
|
||||||
|
|
||||||
instance Exception DecodingException
|
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" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE characterMapping SYSTEM "http://www.unicode.org/unicode/reports/tr22/CharacterMapping.dtd">
|
<!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>
|
<history>
|
||||||
<modified version="3" date="2001-02-21">
|
<modified version="3" date="2001-02-21">
|
||||||
0x80 appears to be a valid (and unassigned) single-byte code, added to the validity.
|
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
|
module Data.Encoding.ISO88591 where
|
||||||
|
|
||||||
import Control.Throws
|
import Control.Throws
|
||||||
@ -6,8 +9,9 @@ import Data.Encoding.Exception
|
|||||||
import Data.Encoding.ByteSource
|
import Data.Encoding.ByteSource
|
||||||
import Data.Encoding.ByteSink
|
import Data.Encoding.ByteSink
|
||||||
import Data.Char (ord,chr)
|
import Data.Char (ord,chr)
|
||||||
|
import Data.Typeable
|
||||||
|
|
||||||
data ISO88591 = ISO88591 deriving (Show)
|
data ISO88591 = ISO88591 deriving (Show,Eq,Typeable)
|
||||||
|
|
||||||
instance Encoding ISO88591 where
|
instance Encoding ISO88591 where
|
||||||
encodeChar _ c
|
encodeChar _ c
|
||||||
@ -16,3 +20,4 @@ instance Encoding ISO88591 where
|
|||||||
decodeChar _ = do
|
decodeChar _ = do
|
||||||
w <- fetchWord8
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
0x02 0x0002 # START OF TEXT
|
||||||
@ -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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
|
0x00 0x0000 # NULL
|
||||||
0x01 0x0001 # START OF HEADING
|
0x01 0x0001 # START OF HEADING
|
||||||
0x02 0x0002 # START OF TEXT
|
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
@ -57,3 +57,4 @@ instance Encoding KOI8R where
|
|||||||
| otherwise = case lookup ch koi8rMap of
|
| otherwise = case lookup ch koi8rMap of
|
||||||
Just w -> pushWord8 w
|
Just w -> pushWord8 w
|
||||||
Nothing -> throwException (HasNoRepresentation ch)
|
Nothing -> throwException (HasNoRepresentation ch)
|
||||||
|
encodeable _ c = member c koi8rMap
|
||||||
|
|||||||
@ -57,3 +57,4 @@ instance Encoding KOI8U where
|
|||||||
| otherwise = case lookup ch koi8uMap of
|
| otherwise = case lookup ch koi8uMap of
|
||||||
Just w -> pushWord8 w
|
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)
|
return (c:cs)
|
||||||
Right bom -> decode bom
|
Right bom -> decode bom
|
||||||
decode enc = untilM sourceEmpty (decodeChar enc)
|
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)
|
rest <- untilM sourceEmpty (decodeChar UTF32)
|
||||||
return ((chr $ fromIntegral ch):rest)
|
return ((chr $ fromIntegral ch):rest)
|
||||||
decode enc = untilM sourceEmpty (decodeChar enc)
|
decode enc = untilM sourceEmpty (decodeChar enc)
|
||||||
|
encodeable _ _ = True
|
||||||
|
|||||||
@ -38,6 +38,7 @@ instance Encoding UTF8 where
|
|||||||
where
|
where
|
||||||
n = ord c
|
n = ord c
|
||||||
p8 = pushWord8.fromIntegral
|
p8 = pushWord8.fromIntegral
|
||||||
|
encodeable _ c = c <= '\x10FFFF'
|
||||||
decodeChar UTF8 = do
|
decodeChar UTF8 = do
|
||||||
w1 <- fetchWord8
|
w1 <- fetchWord8
|
||||||
case () of
|
case () of
|
||||||
@ -68,11 +69,13 @@ instance Encoding UTF8 where
|
|||||||
v2 = w2 .&. 0x3F
|
v2 = w2 .&. 0x3F
|
||||||
v3 = w3 .&. 0x3F
|
v3 = w3 .&. 0x3F
|
||||||
v4 = w4 .&. 0x3F
|
v4 = w4 .&. 0x3F
|
||||||
return $ chr $
|
v = ((fromIntegral v1) `shiftL` 18)
|
||||||
((fromIntegral v1) `shiftL` 18)
|
|
||||||
.|. ((fromIntegral v2) `shiftL` 12)
|
.|. ((fromIntegral v2) `shiftL` 12)
|
||||||
.|. ((fromIntegral v3) `shiftL` 6)
|
.|. ((fromIntegral v3) `shiftL` 6)
|
||||||
.|. (fromIntegral v4)
|
.|. (fromIntegral v4)
|
||||||
|
if v <= 0x10FFFF
|
||||||
|
then return $ chr v
|
||||||
|
else throwException (IllegalRepresentation [w1,w2,w3,w4])
|
||||||
| otherwise -> throwException (IllegalCharacter w1)
|
| otherwise -> throwException (IllegalCharacter w1)
|
||||||
decodeChar UTF8Strict = do
|
decodeChar UTF8Strict = do
|
||||||
w1 <- fetchWord8
|
w1 <- fetchWord8
|
||||||
@ -108,13 +111,15 @@ instance Encoding UTF8 where
|
|||||||
v2 = w2 .&. 0x3F
|
v2 = w2 .&. 0x3F
|
||||||
v3 = w3 .&. 0x3F
|
v3 = w3 .&. 0x3F
|
||||||
v4 = w4 .&. 0x3F
|
v4 = w4 .&. 0x3F
|
||||||
if v1 == 0 && v2 < 0x10
|
v = ((fromIntegral v1) `shiftL` 18)
|
||||||
then throwException (IllegalRepresentation [w1,w2,w3,w4])
|
|
||||||
else return $ chr $
|
|
||||||
((fromIntegral v1) `shiftL` 18)
|
|
||||||
.|. ((fromIntegral v2) `shiftL` 12)
|
.|. ((fromIntegral v2) `shiftL` 12)
|
||||||
.|. ((fromIntegral v3) `shiftL` 6)
|
.|. ((fromIntegral v3) `shiftL` 6)
|
||||||
.|. (fromIntegral v4)
|
.|. (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)
|
| otherwise -> throwException (IllegalCharacter w1)
|
||||||
where
|
where
|
||||||
invalidExtend wrd = wrd .&. 0xC0 /= 0x80
|
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