summaryrefslogtreecommitdiffstats
path: root/Lib/encodings/cp874.py
blob: 0231c7ac5bb92b2718d708d66dd4ffc77fc9167a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
""" Python Character Mapping Codec generated from 'CP874.TXT'.


Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

"""#"

import codecs

### Codec APIs

class Codec(codecs.Codec):

    def encode(self,input,errors='strict'):

        return codecs.charmap_encode(input,errors,encoding_map)
        
    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass
        
class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

    return (Codec().encode,Codec().decode,StreamReader,StreamWriter)

### Decoding Map

decoding_map = {

	0x0080: 0x20ac,	# EURO SIGN
	0x0081: None,	# UNDEFINED
	0x0082: None,	# UNDEFINED
	0x0083: None,	# UNDEFINED
	0x0084: None,	# UNDEFINED
	0x0085: 0x2026,	# HORIZONTAL ELLIPSIS
	0x0086: None,	# UNDEFINED
	0x0087: None,	# UNDEFINED
	0x0088: None,	# UNDEFINED
	0x0089: None,	# UNDEFINED
	0x008a: None,	# UNDEFINED
	0x008b: None,	# UNDEFINED
	0x008c: None,	# UNDEFINED
	0x008d: None,	# UNDEFINED
	0x008e: None,	# UNDEFINED
	0x008f: None,	# UNDEFINED
	0x0090: None,	# UNDEFINED
	0x0091: 0x2018,	# LEFT SINGLE QUOTATION MARK
	0x0092: 0x2019,	# RIGHT SINGLE QUOTATION MARK
	0x0093: 0x201c,	# LEFT DOUBLE QUOTATION MARK
	0x0094: 0x201d,	# RIGHT DOUBLE QUOTATION MARK
	0x0095: 0x2022,	# BULLET
	0x0096: 0x2013,	# EN DASH
	0x0097: 0x2014,	# EM DASH
	0x0098: None,	# UNDEFINED
	0x0099: None,	# UNDEFINED
	0x009a: None,	# UNDEFINED
	0x009b: None,	# UNDEFINED
	0x009c: None,	# UNDEFINED
	0x009d: None,	# UNDEFINED
	0x009e: None,	# UNDEFINED
	0x009f: None,	# UNDEFINED
	0x00a1: 0x0e01,	# THAI CHARACTER KO KAI
	0x00a2: 0x0e02,	# THAI CHARACTER KHO KHAI
	0x00a3: 0x0e03,	# THAI CHARACTER KHO KHUAT
	0x00a4: 0x0e04,	# THAI CHARACTER KHO KHWAI
	0x00a5: 0x0e05,	# THAI CHARACTER KHO KHON
	0x00a6: 0x0e06,	# THAI CHARACTER KHO RAKHANG
	0x00a7: 0x0e07,	# THAI CHARACTER NGO NGU
	0x00a8: 0x0e08,	# THAI CHARACTER CHO CHAN
	0x00a9: 0x0e09,	# THAI CHARACTER CHO CHING
	0x00aa: 0x0e0a,	# THAI CHARACTER CHO CHANG
	0x00ab: 0x0e0b,	# THAI CHARACTER SO SO
	0x00ac: 0x0e0c,	# THAI CHARACTER CHO CHOE
	0x00ad: 0x0e0d,	# THAI CHARACTER YO YING
	0x00ae: 0x0e0e,	# THAI CHARACTER DO CHADA
	0x00af: 0x0e0f,	# THAI CHARACTER TO PATAK
	0x00b0: 0x0e10,	# THAI CHARACTER THO THAN
	0x00b1: 0x0e11,	# THAI CHARACTER THO NANGMONTHO
	0x00b2: 0x0e12,	# THAI CHARACTER THO PHUTHAO
	0x00b3: 0x0e13,	# THAI CHARACTER NO NEN
	0x00b4: 0x0e14,	# THAI CHARACTER DO DEK
	0x00b5: 0x0e15,	# THAI CHARACTER TO TAO
	0x00b6: 0x0e16,	# THAI CHARACTER THO THUNG
	0x00b7: 0x0e17,	# THAI CHARACTER THO THAHAN
	0x00b8: 0x0e18,	# THAI CHARACTER THO THONG
	0x00b9: 0x0e19,	# THAI CHARACTER NO NU
	0x00ba: 0x0e1a,	# THAI CHARACTER BO BAIMAI
	0x00bb: 0x0e1b,	# THAI CHARACTER PO PLA
	0x00bc: 0x0e1c,	# THAI CHARACTER PHO PHUNG
	0x00bd: 0x0e1d,	# THAI CHARACTER FO FA
	0x00be: 0x0e1e,	# THAI CHARACTER PHO PHAN
	0x00bf: 0x0e1f,	# THAI CHARACTER FO FAN
	0x00c0: 0x0e20,	# THAI CHARACTER PHO SAMPHAO
	0x00c1: 0x0e21,	# THAI CHARACTER MO MA
	0x00c2: 0x0e22,	# THAI CHARACTER YO YAK
	0x00c3: 0x0e23,	# THAI CHARACTER RO RUA
	0x00c4: 0x0e24,	# THAI CHARACTER RU
	0x00c5: 0x0e25,	# THAI CHARACTER LO LING
	0x00c6: 0x0e26,	# THAI CHARACTER LU
	0x00c7: 0x0e27,	# THAI CHARACTER WO WAEN
	0x00c8: 0x0e28,	# THAI CHARACTER SO SALA
	0x00c9: 0x0e29,	# THAI CHARACTER SO RUSI
	0x00ca: 0x0e2a,	# THAI CHARACTER SO SUA
	0x00cb: 0x0e2b,	# THAI CHARACTER HO HIP
	0x00cc: 0x0e2c,	# THAI CHARACTER LO CHULA
	0x00cd: 0x0e2d,	# THAI CHARACTER O ANG
	0x00ce: 0x0e2e,	# THAI CHARACTER HO NOKHUK
	0x00cf: 0x0e2f,	# THAI CHARACTER PAIYANNOI
	0x00d0: 0x0e30,	# THAI CHARACTER SARA A
	0x00d1: 0x0e31,	# THAI CHARACTER MAI HAN-AKAT
	0x00d2: 0x0e32,	# THAI CHARACTER SARA AA
	0x00d3: 0x0e33,	# THAI CHARACTER SARA AM
	0x00d4: 0x0e34,	# THAI CHARACTER SARA I
	0x00d5: 0x0e35,	# THAI CHARACTER SARA II
	0x00d6: 0x0e36,	# THAI CHARACTER SARA UE
	0x00d7: 0x0e37,	# THAI CHARACTER SARA UEE
	0x00d8: 0x0e38,	# THAI CHARACTER SARA U
	0x00d9: 0x0e39,	# THAI CHARACTER SARA UU
	0x00da: 0x0e3a,	# THAI CHARACTER PHINTHU
	0x00db: None,	# UNDEFINED
	0x00dc: None,	# UNDEFINED
	0x00dd: None,	# UNDEFINED
	0x00de: None,	# UNDEFINED
	0x00df: 0x0e3f,	# THAI CURRENCY SYMBOL BAHT
	0x00e0: 0x0e40,	# THAI CHARACTER SARA E
	0x00e1: 0x0e41,	# THAI CHARACTER SARA AE
	0x00e2: 0x0e42,	# THAI CHARACTER SARA O
	0x00e3: 0x0e43,	# THAI CHARACTER SARA AI MAIMUAN
	0x00e4: 0x0e44,	# THAI CHARACTER SARA AI MAIMALAI
	0x00e5: 0x0e45,	# THAI CHARACTER LAKKHANGYAO
	0x00e6: 0x0e46,	# THAI CHARACTER MAIYAMOK
	0x00e7: 0x0e47,	# THAI CHARACTER MAITAIKHU
	0x00e8: 0x0e48,	# THAI CHARACTER MAI EK
	0x00e9: 0x0e49,	# THAI CHARACTER MAI THO
	0x00ea: 0x0e4a,	# THAI CHARACTER MAI TRI
	0x00eb: 0x0e4b,	# THAI CHARACTER MAI CHATTAWA
	0x00ec: 0x0e4c,	# THAI CHARACTER THANTHAKHAT
	0x00ed: 0x0e4d,	# THAI CHARACTER NIKHAHIT
	0x00ee: 0x0e4e,	# THAI CHARACTER YAMAKKAN
	0x00ef: 0x0e4f,	# THAI CHARACTER FONGMAN
	0x00f0: 0x0e50,	# THAI DIGIT ZERO
	0x00f1: 0x0e51,	# THAI DIGIT ONE
	0x00f2: 0x0e52,	# THAI DIGIT TWO
	0x00f3: 0x0e53,	# THAI DIGIT THREE
	0x00f4: 0x0e54,	# THAI DIGIT FOUR
	0x00f5: 0x0e55,	# THAI DIGIT FIVE
	0x00f6: 0x0e56,	# THAI DIGIT SIX
	0x00f7: 0x0e57,	# THAI DIGIT SEVEN
	0x00f8: 0x0e58,	# THAI DIGIT EIGHT
	0x00f9: 0x0e59,	# THAI DIGIT NINE
	0x00fa: 0x0e5a,	# THAI CHARACTER ANGKHANKHU
	0x00fb: 0x0e5b,	# THAI CHARACTER KHOMUT
	0x00fc: None,	# UNDEFINED
	0x00fd: None,	# UNDEFINED
	0x00fe: None,	# UNDEFINED
	0x00ff: None,	# UNDEFINED
}

### Encoding Map

encoding_map = {}
for k,v in decoding_map.items():
    encoding_map[v] = k