iro/anbieter/gsm0338.py
author Sandro Knauß <knauss@netzguerilla.net>
Sun, 22 Nov 2009 15:26:48 +0100
changeset 16 22a6b6947743
child 17 44a3eda179b6
permissions -rw-r--r--
added gsm0338.py
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
#!/usr/bin/python
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
# -*- coding: iso-8859-7 -*-
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
import codecs
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
ENCODING_NAME = "gsm0338"
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
decoding_map = {
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
	0x00:0x0040, #	COMMERCIAL AT
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
	0x01:0x00A3, #	POUND SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
	0x02:0x0024, #	DOLLAR SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
	0x03:0x00A5, #	YEN SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
	0x04:0x00E8, #	LATIN SMALL LETTER E WITH GRAVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
	0x05:0x00E9, #	LATIN SMALL LETTER E WITH ACUTE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
	0x06:0x00F9, #	LATIN SMALL LETTER U WITH GRAVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
	0x07:0x00EC, #	LATIN SMALL LETTER I WITH GRAVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
	0x08:0x00F2, #	LATIN SMALL LETTER O WITH GRAVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
	0x09:0x00E7, #	LATIN SMALL LETTER C WITH CEDILLA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
	0x0A:0x000A, #	LINE FEED
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
	0x0B:0x00D8, #	LATIN CAPITAL LETTER O WITH STROKE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
	0x0C:0x00F8, #	LATIN SMALL LETTER O WITH STROKE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
	0x0D:0x000D, #	CARRIAGE RETURN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
	0x0E:0x00C5, #	LATIN CAPITAL LETTER A WITH RING ABOVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
	0x0F:0x00E5, #	LATIN SMALL LETTER A WITH RING ABOVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
	0x10:0x0394, #	GREEK CAPITAL LETTER DELTA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
	0x11:0x005F, #	LOW LINE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
	0x12:0x03A6, #	GREEK CAPITAL LETTER PHI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
	0x13:0x0393, #	GREEK CAPITAL LETTER GAMMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
	0x14:0x039B, #	GREEK CAPITAL LETTER LAMDA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
	0x15:0x03A9, #	GREEK CAPITAL LETTER OMEGA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
	0x16:0x03A0, #	GREEK CAPITAL LETTER PI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
	0x17:0x03A8, #	GREEK CAPITAL LETTER PSI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
	0x18:0x03A3, #	GREEK CAPITAL LETTER SIGMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
	0x19:0x0398, #	GREEK CAPITAL LETTER THETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
	0x1A:0x039E, #	GREEK CAPITAL LETTER XI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
	0x1B:0x00A0, #	ESCAPE TO EXTENSION TABLE (or displayed as NBSP, see note above)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
	0x1B0A:0x000C, #	FORM FEED
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
	0x1B14:0x005E, #	CIRCUMFLEX ACCENT
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
	0x1B28:0x007B, #	LEFT CURLY BRACKET
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
	0x1B29:0x007D, #	RIGHT CURLY BRACKET
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
	0x1B2F:0x005C, #	REVERSE SOLIDUS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
	0x1B3C:0x005B, #	LEFT SQUARE BRACKET
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
	0x1B3D:0x007E, #	TILDE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
	0x1B3E:0x005D, #	RIGHT SQUARE BRACKET
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
	0x1B40:0x007C, #	VERTICAL LINE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
	0x1B65:0x1E82, #	EURO SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
	0x1C:0x00C6, #	LATIN CAPITAL LETTER AE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
	0x1D:0x00E6, #	LATIN SMALL LETTER AE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
	0x1E:0x00DF, #	LATIN SMALL LETTER SHARP S (German)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
	0x1F:0x00C9, #	LATIN CAPITAL LETTER E WITH ACUTE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
	0x20:0x0020, #	SPACE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
	0x21:0x0021, #	EXCLAMATION MARK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
	0x22:0x0022, #	QUOTATION MARK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
	0x23:0x0023, #	NUMBER SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
	0x24:0x00A4, #	CURRENCY SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
	0x25:0x0025, #	PERCENT SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
	0x26:0x0026, #	AMPERSAND
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
	0x27:0x0027, #	APOSTROPHE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
	0x28:0x0028, #	LEFT PARENTHESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
	0x29:0x0029, #	RIGHT PARENTHESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
	0x2A:0x002A, #	ASTERISK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
	0x2B:0x002B, #	PLUS SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
	0x2C:0x002C, #	COMMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
	0x2D:0x002D, #	HYPHEN-MINUS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
	0x2E:0x002E, #	FULL STOP
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
	0x2F:0x002F, #	SOLIDUS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
	0x30:0x0030, #	DIGIT ZERO
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
	0x31:0x0031, #	DIGIT ONE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
	0x32:0x0032, #	DIGIT TWO
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
	0x33:0x0033, #	DIGIT THREE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
	0x34:0x0034, #	DIGIT FOUR
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
	0x35:0x0035, #	DIGIT FIVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
	0x36:0x0036, #	DIGIT SIX
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
	0x37:0x0037, #	DIGIT SEVEN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
	0x38:0x0038, #	DIGIT EIGHT
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
	0x39:0x0039, #	DIGIT NINE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
	0x3A:0x003A, #	COLON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
	0x3B:0x003B, #	SEMICOLON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
	0x3C:0x003C, #	LESS-THAN SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
	0x3D:0x003D, #	EQUALS SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
	0x3E:0x003E, #	GREATER-THAN SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
	0x3F:0x003F, #	QUESTION MARK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
	0x40:0x00A1, #	INVERTED EXCLAMATION MARK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
	0x41:0x0041, #	LATIN CAPITAL LETTER A
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
	0x41:0x0391, #	GREEK CAPITAL LETTER ALPHA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
	0x42:0x0042, #	LATIN CAPITAL LETTER B
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
	0x42:0x0392, #	GREEK CAPITAL LETTER BETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
	0x43:0x0043, #	LATIN CAPITAL LETTER C
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
	0x44:0x0044, #	LATIN CAPITAL LETTER D
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
	0x45:0x0045, #	LATIN CAPITAL LETTER E
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
	0x45:0x0395, #	GREEK CAPITAL LETTER EPSILON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
	0x46:0x0046, #	LATIN CAPITAL LETTER F
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
	0x47:0x0047, #	LATIN CAPITAL LETTER G
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
	0x48:0x0048, #	LATIN CAPITAL LETTER H
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
	0x48:0x0397, #	GREEK CAPITAL LETTER ETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
	0x49:0x0049, #	LATIN CAPITAL LETTER I
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
	0x49:0x0399, #	GREEK CAPITAL LETTER IOTA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    97
	0x4A:0x004A, #	LATIN CAPITAL LETTER J
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    98
	0x4B:0x004B, #	LATIN CAPITAL LETTER K
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
	0x4B:0x039A, #	GREEK CAPITAL LETTER KAPPA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
	0x4C:0x004C, #	LATIN CAPITAL LETTER L
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
	0x4D:0x004D, #	LATIN CAPITAL LETTER M
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
	0x4D:0x039C, #	GREEK CAPITAL LETTER MU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
	0x4E:0x004E, #	LATIN CAPITAL LETTER N
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
	0x4E:0x039D, #	GREEK CAPITAL LETTER NU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
	0x4F:0x004F, #	LATIN CAPITAL LETTER O
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   106
	0x4F:0x039F, #	GREEK CAPITAL LETTER OMICRON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   107
	0x50:0x0050, #	LATIN CAPITAL LETTER P
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
	0x50:0x03A1, #	GREEK CAPITAL LETTER RHO
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
	0x51:0x0051, #	LATIN CAPITAL LETTER Q
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   110
	0x52:0x0052, #	LATIN CAPITAL LETTER R
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   111
	0x53:0x0053, #	LATIN CAPITAL LETTER S
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
	0x54:0x0054, #	LATIN CAPITAL LETTER T
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
	0x54:0x03A4, #	GREEK CAPITAL LETTER TAU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
	0x55:0x0055, #	LATIN CAPITAL LETTER U
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
	0x55:0x03A5, #	GREEK CAPITAL LETTER UPSILON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
	0x56:0x0056, #	LATIN CAPITAL LETTER V
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   117
	0x57:0x0057, #	LATIN CAPITAL LETTER W
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   118
	0x58:0x0058, #	LATIN CAPITAL LETTER X
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   119
	0x58:0x03A7, #	GREEK CAPITAL LETTER CHI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   120
	0x59:0x0059, #	LATIN CAPITAL LETTER Y
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   121
	0x5A:0x005A, #	LATIN CAPITAL LETTER Z
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   122
	0x5A:0x0396, #	GREEK CAPITAL LETTER ZETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   123
	0x5B:0x00C4, #	LATIN CAPITAL LETTER A WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   124
	0x5C:0x00D6, #	LATIN CAPITAL LETTER O WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   125
	0x5D:0x00D1, #	LATIN CAPITAL LETTER N WITH TILDE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   126
	0x5E:0x00DC, #	LATIN CAPITAL LETTER U WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   127
	0x5F:0x00A7, #	SECTION SIGN
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   128
	0x60:0x00BF, #	INVERTED QUESTION MARK
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   129
	0x61:0x0061, #	LATIN SMALL LETTER A
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   130
	0x62:0x0062, #	LATIN SMALL LETTER B
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   131
	0x63:0x0063, #	LATIN SMALL LETTER C
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   132
	0x64:0x0064, #	LATIN SMALL LETTER D
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   133
	0x65:0x0065, #	LATIN SMALL LETTER E
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   134
	0x66:0x0066, #	LATIN SMALL LETTER F
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   135
	0x67:0x0067, #	LATIN SMALL LETTER G
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   136
	0x68:0x0068, #	LATIN SMALL LETTER H
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   137
	0x69:0x0069, #	LATIN SMALL LETTER I
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   138
	0x6A:0x006A, #	LATIN SMALL LETTER J
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   139
	0x6B:0x006B, #	LATIN SMALL LETTER K
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   140
	0x6C:0x006C, #	LATIN SMALL LETTER L
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   141
	0x6D:0x006D, #	LATIN SMALL LETTER M
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   142
	0x6E:0x006E, #	LATIN SMALL LETTER N
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   143
	0x6F:0x006F, #	LATIN SMALL LETTER O
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   144
	0x70:0x0070, #	LATIN SMALL LETTER P
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   145
	0x71:0x0071, #	LATIN SMALL LETTER Q
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   146
	0x72:0x0072, #	LATIN SMALL LETTER R
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   147
	0x73:0x0073, #	LATIN SMALL LETTER S
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   148
	0x74:0x0074, #	LATIN SMALL LETTER T
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   149
	0x75:0x0075, #	LATIN SMALL LETTER U
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   150
	0x76:0x0076, #	LATIN SMALL LETTER V
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   151
	0x77:0x0077, #	LATIN SMALL LETTER W
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   152
	0x78:0x0078, #	LATIN SMALL LETTER X
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   153
	0x79:0x0079, #	LATIN SMALL LETTER Y
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   154
	0x7A:0x007A, #	LATIN SMALL LETTER Z
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   155
	0x7B:0x00E4, #	LATIN SMALL LETTER A WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   156
	0x7C:0x00F6, #	LATIN SMALL LETTER O WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   157
	0x7D:0x00F1, #	LATIN SMALL LETTER N WITH TILDE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   158
	0x7E:0x00FC, #	LATIN SMALL LETTER U WITH DIAERESIS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   159
	0x7F:0x00E0  #	LATIN SMALL LETTER A WITH GRAVE
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   160
}
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   161
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   162
encoding_map = codecs.make_encoding_map(decoding_map)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   163
encoding_map.update({
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   164
	0x03AC:0x41,	#	GREEK SMALL LETTER ALPHA WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   165
	0x03AD:0x45,	#	GREEK SMALL LETTER EPSILON WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   166
	0x03AE:0x48,	#	GREEK SMALL LETTER ETA WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   167
	0x03AF:0x49,	#	GREEK SMALL LETTER IOTA WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   168
	0x03B0:0x59,	#	GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   169
	0x03B1:0x41,	#	GREEK SMALL LETTER ALPHA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   170
	0x03B2:0x42,	#	GREEK SMALL LETTER BETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   171
	0x03B3:0x13,	#	GREEK SMALL LETTER GAMMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   172
	0x03B4:0x10,	#	GREEK SMALL LETTER DELTA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   173
	0x03B5:0x45,	#	GREEK SMALL LETTER EPSILON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   174
	0x03B6:0x5A,	#	GREEK SMALL LETTER ZETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   175
	0x03B7:0x48,	#	GREEK SMALL LETTER ETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   176
	0x03B8:0x19,	#	GREEK SMALL LETTER THETA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   177
	0x03B9:0x49,	#	GREEK SMALL LETTER IOTA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   178
	0x03BA:0x4B,	#	GREEK SMALL LETTER KAPPA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   179
	0x03BB:0x14,	#	GREEK SMALL LETTER LAMDA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   180
	0x03BC:0x4D,	#	GREEK SMALL LETTER MU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   181
	0x03BD:0x4E,	#	GREEK SMALL LETTER NU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   182
	0x03BE:0x1A,	#	GREEK SMALL LETTER XI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   183
	0x03BF:0x4F,	#	GREEK SMALL LETTER OMICRON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   184
	0x03C0:0x16,	#	GREEK SMALL LETTER PI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   185
	0x03C1:0x50,	#	GREEK SMALL LETTER RHO
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   186
	0x03C2:0x18,	#	GREEK SMALL LETTER FINAL SIGMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   187
	0x03C3:0x18,	#	GREEK SMALL LETTER SIGMA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   188
	0x03C4:0x54, #	GREEK SMALL LETTER TAU
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   189
	0x03C5:0x59, #	GREEK SMALL LETTER UPSILON
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   190
	0x03C6:0x12, #	GREEK SMALL LETTER PHI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   191
	0x03C7:0x58, #	GREEK SMALL LETTER CHI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   192
	0x03C8:0x17, #	GREEK SMALL LETTER PSI
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   193
	0x03C9:0x15, #	GREEK SMALL LETTER OMEGA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   194
	0x03CA:0x49, #	GREEK SMALL LETTER IOTA WITH DIALYTIKA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   195
	0x03CB:0x49, #	GREEK SMALL LETTER UPSILON WITH DIALYTIKA
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   196
	0x03CC:0x4F, #	GREEK SMALL LETTER OMICRON WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   197
	0x03CD:0x49, #	GREEK SMALL LETTER UPSILON WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   198
	0x03CE:0x15	 #	GREEK SMALL LETTER OMEGA WITH TONOS
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   199
})
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   200
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   201
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   202
class Codec(codecs.Codec):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   203
	def encode(self,input,errors='strict'):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   204
		return codecs.charmap_encode(input,errors,encoding_map)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   205
	def decode(self,input,errors='strict'):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   206
		return codecs.charmap_decode(input,errors,decoding_map)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   207
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   208
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   209
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   210
class StreamWriter(Codec,codecs.StreamWriter):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   211
    pass
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   212
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   213
class StreamReader(Codec,codecs.StreamReader):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   214
    pass
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   215
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   216
### encodings module API
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   217
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   218
def getregentry():
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   219
	return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   220
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   221
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   222
def gsm_search(encoding):
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   223
	if not encoding == ENCODING_NAME:
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   224
		return
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   225
	print "Using gsm codec"	
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   226
	return getregentry()
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   227
	
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   228
# Register our codec when we load the module
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   229
codecs.register(gsm_search)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   230
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   231
if __name__ == "__main__":
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   232
	text = u"���"
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   233
	print text.upper()
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   234
	text2 = text.encode("gsm0338")
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   235
	for char in text2:
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   236
		print "%d"%ord(char)
22a6b6947743 added gsm0338.py
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   237