# -*- coding: utf-8 -*- import codecs def iso6937_encode(input, errors, encoding_map): num_bytes = 0 tmp = bytearray(b'') for c in input: try: if 0x00 <= ord(c) < 0xA0: tmp += bytearray([ord(c)]) num_bytes += 1 elif c in encoding_map: tmp += encoding_map[c] num_bytes += len(encoding_map[c]) else: raise KeyError except KeyError: if errors == 'strict': raise UnicodeError("Unacceptable unicode character %c" % c) elif errors == 'replace': tmp += '?' num_bytes += 1 elif errors == 'ignore': pass else: raise UnicodeError("Unknown error handling") result = bytes(tmp) return (result, num_bytes) def iso6937_decode(input, errors, decoding_map): result = '' num_bytes = 0 i = 0 while i < len(input): c = chr(input[i]) try: if c in nonspacing_diacritical_marks: i += 1 if i >= len(input): raise UnicodeError("Incomplete input") char = c + chr(input[i]) if char in decoding_map: result += decoding_map[char] num_bytes += len(decoding_map[char]) else: raise KeyError elif c in decoding_map: result += decoding_map[c] num_bytes += len(decoding_map[c]) else: num_bytes += 1 result += c except KeyError: if errors == 'strict': raise UnicodeError( "Unrecognized iso6937 codepoint %x%c" % (ord(char[0]), char[1])) elif errors == 'replace': num_bytes += 1 result += '?' elif errors == 'ignore': pass else: raise UnicodeError("Unknown error handling") i += 1 return (result, num_bytes) # Codec APIs class Codec(codecs.Codec): def encode(self, input, errors='strict'): return iso6937_encode(input, errors, encoding_map) def decode(self, input, errors='strict'): return iso6937_decode(input, errors, decoding_map) class IncrementalEncoder(codecs.IncrementalEncoder): def encode(self, input, final=False): return iso6937_encode(input, self.errors, encoding_map)[0] class IncrementalDecoder(codecs.IncrementalDecoder): def decode(self, input, final=False): return iso6937_decode(input, self.errors, decoding_map)[0] class StreamWriter(Codec, codecs.StreamWriter): pass class StreamReader(Codec, codecs.StreamReader): pass # Encodings module API def getregentry(): return codecs.CodecInfo( name='iso6937', encode=Codec().encode, decode=Codec().decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamreader=StreamReader, streamwriter=StreamWriter, ) nonspacing_diacritical_marks = set([ '\xc1', '\xc2', '\xc3', '\xc4', '\xc5', '\xc6', '\xc7', '\xc8', '\xca', '\xcb', '\xcd', '\xce', '\xcf', ]) # Encoding Map encoding_map = { '\u00A0': b'\xa0', # NO-BREAK SPACE '\u00A1': b'\xa1', # ¡ '\u00A2': b'\xa2', # ¢ '\u00A3': b'\xa3', # £ # b'\xa4', '\u00A5': b'\xa5', # ¥ # b'\xa6', '\u00A7': b'\xa7', # § '\u00A4': b'\xa8', # ¤ '\u2018': b'\xa9', # ‘ '\u201C': b'\xaa', # “ '\u00AB': b'\xab', # « '\u2190': b'\xac', # ← '\u2191': b'\xad', # ↑ '\u2192': b'\xae', # → '\u2193': b'\xaf', # ↓ '\u00B0': b'\xb0', # ° '\u00B1': b'\xb1', # ± '\u00B2': b'\xb2', # ² '\u00B3': b'\xb3', # ³ '\u00D7': b'\xb4', # × '\u00B5': b'\xb5', # µ '\u00B6': b'\xb6', # ¶ '\u00B7': b'\xb7', # · '\u00F7': b'\xb8', # ÷ '\u2019': b'\xb9', # ’ '\u201D': b'\xba', # ” '\u00BB': b'\xbb', # » '\u00BC': b'\xbc', # ¼ '\u00BD': b'\xbd', # ½ '\u00BE': b'\xbe', # ¾ '\u00BF': b'\xbf', # ¿ # b'\xc0', # b'\xc1', # b'\xc2', # b'\xc3', # b'\xc4', # b'\xc5', # b'\xc6', # b'\xc7', # b'\xc8', # b'\xc9', # b'\xca', # b'\xcb', # b'\xcc', # b'\xcd', # b'\xce', # b'\xcf', '\u2014': b'\xd0', # — '\u00B9': b'\xd1', # ¹ '\u00AE': b'\xd2', # ® '\u00A9': b'\xd3', # © '\u2122': b'\xd4', # ™ '\u266A': b'\xd5', # ♪ '\u00AC': b'\xd6', # ¬ '\u00A6': b'\xd7', # ¦ # b'\xd8', # b'\xd9', # b'\xda', # b'\xdb', '\u215B': b'\xdc', # ⅛ '\u215C': b'\xdd', # ⅜ '\u215D': b'\xde', # ⅝ '\u215E': b'\xdf', # ⅞ '\u2126': b'\xe0', # Ω '\u00C6': b'\xe1', # Æ '\u00D0': b'\xe2', # Ð '\u00AA': b'\xe3', # ª '\u0126': b'\xe4', # Ħ # b'\xe5', '\u0132': b'\xe6', # IJ '\u013F': b'\xe7', # Ŀ '\u0141': b'\xe8', # Ł '\u00D8': b'\xe9', # Ø '\u0152': b'\xea', # Œ '\u00BA': b'\xeb', # º '\u00DE': b'\xec', # Þ '\u0166': b'\xed', # Ŧ '\u014A': b'\xee', # Ŋ '\u0149': b'\xef', # ʼn '\u0138': b'\xf0', # ĸ '\u00E6': b'\xf1', # æ '\u0111': b'\xf2', # đ '\u00F0': b'\xf3', # ð '\u0127': b'\xf4', # ħ '\u0131': b'\xf5', # ı '\u0133': b'\xf6', # ij '\u0140': b'\xf7', # ŀ '\u0142': b'\xf8', # ł '\u00F8': b'\xf9', # ø '\u0153': b'\xfa', # œ '\u00DF': b'\xfb', # ß '\u00FE': b'\xfc', # þ '\u0167': b'\xfd', # ŧ '\u014B': b'\xfe', # ŋ '\u00AD': b'\xff', # SOFT HYPHEN '\u00C0': b'\xc1'+b'A', # À '\u00C8': b'\xc1'+b'E', # È '\u00CC': b'\xc1'+b'I', # Ì '\u00D2': b'\xc1'+b'O', # Ò '\u00D9': b'\xc1'+b'U', # Ù '\u00E0': b'\xc1'+b'a', # à '\u00E8': b'\xc1'+b'e', # è '\u00EC': b'\xc1'+b'i', # ì '\u00F2': b'\xc1'+b'o', # ò '\u00F9': b'\xc1'+b'u', # ù '\u00B4': b'\xc2'+b' ', # ´ '\u00C1': b'\xc2'+b'A', # Á '\u0106': b'\xc2'+b'C', # Ć '\u00C9': b'\xc2'+b'E', # É '\u00CD': b'\xc2'+b'I', # Í '\u0139': b'\xc2'+b'L', # Ĺ '\u0143': b'\xc2'+b'N', # Ń '\u00D3': b'\xc2'+b'O', # Ó '\u0154': b'\xc2'+b'R', # Ŕ '\u015A': b'\xc2'+b'S', # Ś '\u00DA': b'\xc2'+b'U', # Ú '\u00DD': b'\xc2'+b'Y', # Ý '\u0179': b'\xc2'+b'Z', # Ź '\u00E1': b'\xc2'+b'a', # á '\u0107': b'\xc2'+b'c', # ć '\u00E9': b'\xc2'+b'e', # é '\u01F5': b'\xc2'+b'g', # ǵ '\u00ED': b'\xc2'+b'i', # í '\u013A': b'\xc2'+b'l', # ĺ '\u0144': b'\xc2'+b'n', # ń '\u00F3': b'\xc2'+b'o', # ó '\u0155': b'\xc2'+b'r', # ŕ '\u015B': b'\xc2'+b's', # ś '\u00FA': b'\xc2'+b'u', # ú '\u00FD': b'\xc2'+b'y', # ý '\u017A': b'\xc2'+b'z', # ź '\u00C2': b'\xc3'+b'A', #  '\u0108': b'\xc3'+b'C', # Ĉ '\u00CA': b'\xc3'+b'E', # Ê '\u011C': b'\xc3'+b'G', # Ĝ '\u0124': b'\xc3'+b'H', # Ĥ '\u00CE': b'\xc3'+b'I', # Î '\u0134': b'\xc3'+b'J', # Ĵ '\u00D4': b'\xc3'+b'O', # Ô '\u015C': b'\xc3'+b'S', # Ŝ '\u00DB': b'\xc3'+b'U', # Û '\u0174': b'\xc3'+b'W', # Ŵ '\u0176': b'\xc3'+b'Y', # Ŷ '\u00E2': b'\xc3'+b'a', # â '\u0109': b'\xc3'+b'c', # ĉ '\u00EA': b'\xc3'+b'e', # ê '\u011D': b'\xc3'+b'g', # ĝ '\u0125': b'\xc3'+b'h', # ĥ '\u00EE': b'\xc3'+b'i', # î '\u0135': b'\xc3'+b'j', # ĵ '\u00F4': b'\xc3'+b'o', # ô '\u015D': b'\xc3'+b's', # ŝ '\u00FB': b'\xc3'+b'u', # û '\u0175': b'\xc3'+b'w', # ŵ '\u0177': b'\xc3'+b'y', # ŷ '\u00C3': b'\xc4'+b'A', # à '\u0128': b'\xc4'+b'I', # Ĩ '\u00D1': b'\xc4'+b'N', # Ñ '\u00D5': b'\xc4'+b'O', # Õ '\u0168': b'\xc4'+b'U', # Ũ '\u00E3': b'\xc4'+b'a', # ã '\u0129': b'\xc4'+b'i', # ĩ '\u00F1': b'\xc4'+b'n', # ñ '\u00F5': b'\xc4'+b'o', # õ '\u0169': b'\xc4'+b'u', # ũ '\u00AF': b'\xc5'+b' ', # ¯ '\u0100': b'\xc5'+b'A', # Ā '\u0112': b'\xc5'+b'E', # Ē '\u012A': b'\xc5'+b'I', # Ī '\u014C': b'\xc5'+b'O', # Ō '\u016A': b'\xc5'+b'U', # Ū '\u0101': b'\xc5'+b'a', # ā '\u0113': b'\xc5'+b'e', # ē '\u012B': b'\xc5'+b'i', # ī '\u014D': b'\xc5'+b'o', # ō '\u016B': b'\xc5'+b'u', # ū '\u02D8': b'\xc6'+b' ', # ˘ '\u0102': b'\xc6'+b'A', # Ă '\u011E': b'\xc6'+b'G', # Ğ '\u016C': b'\xc6'+b'U', # Ŭ '\u0103': b'\xc6'+b'a', # ă '\u011F': b'\xc6'+b'g', # ğ '\u016D': b'\xc6'+b'u', # ŭ '\u02D9': b'\xc7'+b' ', # ˙ '\u010A': b'\xc7'+b'C', # Ċ '\u0116': b'\xc7'+b'E', # Ė '\u0120': b'\xc7'+b'G', # Ġ '\u0130': b'\xc7'+b'I', # İ '\u017B': b'\xc7'+b'Z', # Ż '\u010B': b'\xc7'+b'c', # ċ '\u0117': b'\xc7'+b'e', # ė '\u0121': b'\xc7'+b'g', # ġ '\u017C': b'\xc7'+b'z', # ż '\u00A8': b'\xc8'+b' ', # ¨ '\u00C4': b'\xc8'+b'A', # Ä '\u00CB': b'\xc8'+b'E', # Ë '\u00CF': b'\xc8'+b'I', # Ï '\u00D6': b'\xc8'+b'O', # Ö '\u00DC': b'\xc8'+b'U', # Ü '\u0178': b'\xc8'+b'Y', # Ÿ '\u00E4': b'\xc8'+b'a', # ä '\u00EB': b'\xc8'+b'e', # ë '\u00EF': b'\xc8'+b'i', # ï '\u00F6': b'\xc8'+b'o', # ö '\u00FC': b'\xc8'+b'u', # ü '\u00FF': b'\xc8'+b'y', # ÿ '\u02DA': b'\xca'+b' ', # ˚ '\u00C5': b'\xca'+b'A', # Å '\u016E': b'\xca'+b'U', # Ů '\u00E5': b'\xca'+b'a', # å '\u016F': b'\xca'+b'u', # ů '\u00B8': b'\xcb'+b' ', # ¸ '\u00C7': b'\xcb'+b'C', # Ç '\u0122': b'\xcb'+b'G', # Ģ '\u0136': b'\xcb'+b'K', # Ķ '\u013B': b'\xcb'+b'L', # Ļ '\u0145': b'\xcb'+b'N', # Ņ '\u0156': b'\xcb'+b'R', # Ŗ '\u015E': b'\xcb'+b'S', # Ş '\u0162': b'\xcb'+b'T', # Ţ '\u00E7': b'\xcb'+b'c', # ç '\u0123': b'\xcb'+b'g', # ģ '\u0137': b'\xcb'+b'k', # ķ '\u013C': b'\xcb'+b'l', # ļ '\u0146': b'\xcb'+b'n', # ņ '\u0157': b'\xcb'+b'r', # ŗ '\u015F': b'\xcb'+b's', # ş '\u0163': b'\xcb'+b't', # ţ '\u02DD': b'\xcd'+b' ', # ˝ '\u0150': b'\xcd'+b'O', # Ő '\u0170': b'\xcd'+b'U', # Ű '\u0151': b'\xcd'+b'o', # ő '\u0171': b'\xcd'+b'u', # ű '\u02DB': b'\xce'+b' ', # ˛ '\u0104': b'\xce'+b'A', # Ą '\u0118': b'\xce'+b'E', # Ę '\u012E': b'\xce'+b'I', # Į '\u0172': b'\xce'+b'U', # Ų '\u0105': b'\xce'+b'a', # ą '\u0119': b'\xce'+b'e', # ę '\u012F': b'\xce'+b'i', # į '\u0173': b'\xce'+b'u', # ų '\u02C7': b'\xcf'+b' ', # ˇ '\u010C': b'\xcf'+b'C', # Č '\u010E': b'\xcf'+b'D', # Ď '\u011A': b'\xcf'+b'E', # Ě '\u013D': b'\xcf'+b'L', # Ľ '\u0147': b'\xcf'+b'N', # Ň '\u0158': b'\xcf'+b'R', # Ř '\u0160': b'\xcf'+b'S', # Š '\u0164': b'\xcf'+b'T', # Ť '\u017D': b'\xcf'+b'Z', # Ž '\u010D': b'\xcf'+b'c', # č '\u010F': b'\xcf'+b'd', # ď '\u011B': b'\xcf'+b'e', # ě '\u013E': b'\xcf'+b'l', # ľ '\u0148': b'\xcf'+b'n', # ň '\u0159': b'\xcf'+b'r', # ř '\u0161': b'\xcf'+b's', # š '\u0165': b'\xcf'+b't', # ť '\u017E': b'\xcf'+b'z', # ž } # Decoding Map decoding_map = { '\xa0': '\u00A0', # NO-BREAK SPACE '\xa1': '\u00A1', # ¡ '\xa2': '\u00A2', # ¢ '\xa3': '\u00A3', # £ # '\xa4' '\xa5': '\u00A5', # ¥ # '\xa6' '\xa7': '\u00A7', # § '\xa8': '\u00A4', # ¤ '\xa9': '\u2018', # ‘ '\xaa': '\u201C', # “ '\xab': '\u00AB', # « '\xac': '\u2190', # ← '\xad': '\u2191', # ↑ '\xae': '\u2192', # → '\xaf': '\u2193', # ↓ '\xb0': '\u00B0', # ° '\xb1': '\u00B1', # ± '\xb2': '\u00B2', # ² '\xb3': '\u00B3', # ³ '\xb4': '\u00D7', # × '\xb5': '\u00B5', # µ '\xb6': '\u00B6', # ¶ '\xb7': '\u00B7', # · '\xb8': '\u00F7', # ÷ '\xb9': '\u2019', # ’ '\xba': '\u201D', # ” '\xbb': '\u00BB', # » '\xbc': '\u00BC', # ¼ '\xbd': '\u00BD', # ½ '\xbe': '\u00BE', # ¾ '\xbf': '\u00BF', # ¿ # '\xc0' # '\xc1' # '\xc2' # '\xc3' # '\xc4' # '\xc5' # '\xc6' # '\xc7' # '\xc8' # '\xc9 # '\xca' # '\xcb' # '\xcc # '\xcd' # '\xce' # '\xcf' '\xd0': '\u2014', # — '\xd1': '\u00B9', # ¹ '\xd2': '\u00AE', # ® '\xd3': '\u00A9', # © '\xd4': '\u2122', # ™ '\xd5': '\u266A', # ♪ '\xd6': '\u00AC', # ¬ '\xd7': '\u00A6', # ¦ # '\xd8' # '\xd9' # '\xda' # '\xdb' '\xdc': '\u215B', # ⅛ '\xdd': '\u215C', # ⅜ '\xde': '\u215D', # ⅝ '\xdf': '\u215E', # ⅞ '\xe0': '\u2126', # Ω '\xe1': '\u00C6', # Æ '\xe2': '\u00D0', # Ð '\xe3': '\u00AA', # ª '\xe4': '\u0126', # Ħ # '\xe5' '\xe6': '\u0132', # IJ '\xe7': '\u013F', # Ŀ '\xe8': '\u0141', # Ł '\xe9': '\u00D8', # Ø '\xea': '\u0152', # Œ '\xeb': '\u00BA', # º '\xec': '\u00DE', # Þ '\xed': '\u0166', # Ŧ '\xee': '\u014A', # Ŋ '\xef': '\u0149', # ʼn '\xf0': '\u0138', # ĸ '\xf1': '\u00E6', # æ '\xf2': '\u0111', # đ '\xf3': '\u00F0', # ð '\xf4': '\u0127', # ħ '\xf5': '\u0131', # ı '\xf6': '\u0133', # ij '\xf7': '\u0140', # ŀ '\xf8': '\u0142', # ł '\xf9': '\u00F8', # ø '\xfa': '\u0153', # œ '\xfb': '\u00DF', # ß '\xfc': '\u00FE', # þ '\xfd': '\u0167', # ŧ '\xfe': '\u014B', # ŋ '\xff': '\u00AD', # SOFT HYPHEN '\xc1'+'A': '\u00C0', # À '\xc1'+'E': '\u00C8', # È '\xc1'+'I': '\u00CC', # Ì '\xc1'+'O': '\u00D2', # Ò '\xc1'+'U': '\u00D9', # Ù '\xc1'+'a': '\u00E0', # à '\xc1'+'e': '\u00E8', # è '\xc1'+'i': '\u00EC', # ì '\xc1'+'o': '\u00F2', # ò '\xc1'+'u': '\u00F9', # ù '\xc2'+' ': '\u00B4', # ´ '\xc2'+'A': '\u00C1', # Á '\xc2'+'C': '\u0106', # Ć '\xc2'+'E': '\u00C9', # É '\xc2'+'I': '\u00CD', # Í '\xc2'+'L': '\u0139', # Ĺ '\xc2'+'N': '\u0143', # Ń '\xc2'+'O': '\u00D3', # Ó '\xc2'+'R': '\u0154', # Ŕ '\xc2'+'S': '\u015A', # Ś '\xc2'+'U': '\u00DA', # Ú '\xc2'+'Y': '\u00DD', # Ý '\xc2'+'Z': '\u0179', # Ź '\xc2'+'a': '\u00E1', # á '\xc2'+'c': '\u0107', # ć '\xc2'+'e': '\u00E9', # é '\xc2'+'g': '\u0123', # ģ '\xc2'+'i': '\u00ED', # í '\xc2'+'l': '\u013A', # ĺ '\xc2'+'n': '\u0144', # ń '\xc2'+'o': '\u00F3', # ó '\xc2'+'r': '\u0155', # ŕ '\xc2'+'s': '\u015B', # ś '\xc2'+'u': '\u00FA', # ú '\xc2'+'y': '\u00FD', # ý '\xc2'+'z': '\u017A', # ź '\xc3'+'A': '\u00C2', #  '\xc3'+'C': '\u0108', # Ĉ '\xc3'+'E': '\u00CA', # Ê '\xc3'+'G': '\u011C', # Ĝ '\xc3'+'H': '\u0124', # Ĥ '\xc3'+'I': '\u00CE', # Î '\xc3'+'J': '\u0134', # Ĵ '\xc3'+'O': '\u00D4', # Ô '\xc3'+'S': '\u015C', # Ŝ '\xc3'+'U': '\u00DB', # Û '\xc3'+'W': '\u0174', # Ŵ '\xc3'+'Y': '\u0176', # Ŷ '\xc3'+'a': '\u00E2', # â '\xc3'+'c': '\u0109', # ĉ '\xc3'+'e': '\u00EA', # ê '\xc3'+'g': '\u011D', # ĝ '\xc3'+'h': '\u0125', # ĥ '\xc3'+'i': '\u00EE', # î '\xc3'+'j': '\u0135', # ĵ '\xc3'+'o': '\u00F4', # ô '\xc3'+'s': '\u015D', # ŝ '\xc3'+'u': '\u00FB', # û '\xc3'+'w': '\u0175', # ŵ '\xc3'+'y': '\u0177', # ŷ '\xc4'+'A': '\u00C3', # à '\xc4'+'I': '\u0128', # Ĩ '\xc4'+'N': '\u00D1', # Ñ '\xc4'+'O': '\u00D5', # Õ '\xc4'+'U': '\u0168', # Ũ '\xc4'+'a': '\u00E3', # ã '\xc4'+'i': '\u0129', # ĩ '\xc4'+'n': '\u00F1', # ñ '\xc4'+'o': '\u00F5', # õ '\xc4'+'u': '\u0169', # ũ '\xc5'+' ': '\u00AF', # ¯ '\xc5'+'A': '\u0100', # Ā '\xc5'+'E': '\u0112', # Ē '\xc5'+'I': '\u012A', # Ī '\xc5'+'O': '\u014C', # Ō '\xc5'+'U': '\u016A', # Ū '\xc5'+'a': '\u0101', # ā '\xc5'+'e': '\u0113', # ē '\xc5'+'i': '\u012B', # ī '\xc5'+'o': '\u014D', # ō '\xc5'+'u': '\u016B', # ū '\xc6'+' ': '\u02D8', # ˘ '\xc6'+'A': '\u0102', # Ă '\xc6'+'G': '\u011E', # Ğ '\xc6'+'U': '\u016C', # Ŭ '\xc6'+'a': '\u0103', # ă '\xc6'+'g': '\u011F', # ğ '\xc6'+'u': '\u016D', # ŭ '\xc7'+' ': '\u02D9', # ˙ '\xc7'+'C': '\u010A', # Ċ '\xc7'+'E': '\u0116', # Ė '\xc7'+'G': '\u0120', # Ġ '\xc7'+'I': '\u0130', # İ '\xc7'+'Z': '\u017B', # Ż '\xc7'+'c': '\u010B', # ċ '\xc7'+'e': '\u0117', # ė '\xc7'+'g': '\u0121', # ġ '\xc7'+'z': '\u017C', # ż '\xc8'+' ': '\u00A8', # ¨ '\xc8'+'A': '\u00C4', # Ä '\xc8'+'E': '\u00CB', # Ë '\xc8'+'I': '\u00CF', # Ï '\xc8'+'O': '\u00D6', # Ö '\xc8'+'U': '\u00DC', # Ü '\xc8'+'Y': '\u0178', # Ÿ '\xc8'+'a': '\u00E4', # ä '\xc8'+'e': '\u00EB', # ë '\xc8'+'i': '\u00EF', # ï '\xc8'+'o': '\u00F6', # ö '\xc8'+'u': '\u00FC', # ü '\xc8'+'y': '\u00FF', # ÿ '\xca'+' ': '\u02DA', # ˚ '\xca'+'A': '\u00C5', # Å '\xca'+'U': '\u016E', # Ů '\xca'+'a': '\u00E5', # å '\xca'+'u': '\u016F', # ů '\xcb'+' ': '\u00B8', # ¸ '\xcb'+'C': '\u00C7', # Ç '\xcb'+'G': '\u0122', # Ģ '\xcb'+'K': '\u0136', # Ķ '\xcb'+'L': '\u013B', # Ļ '\xcb'+'N': '\u0145', # Ņ '\xcb'+'R': '\u0156', # Ŗ '\xcb'+'S': '\u015E', # Ş '\xcb'+'T': '\u0162', # Ţ '\xcb'+'c': '\u00E7', # ç '\xcb'+'g': '\u0123', # ģ '\xcb'+'k': '\u0137', # ķ '\xcb'+'l': '\u013C', # ļ '\xcb'+'n': '\u0146', # ņ '\xcb'+'r': '\u0157', # ŗ '\xcb'+'s': '\u015F', # ş '\xcb'+'t': '\u0163', # ţ '\xcd'+' ': '\u02DD', # ˝ '\xcd'+'O': '\u0150', # Ő '\xcd'+'U': '\u0170', # Ű '\xcd'+'o': '\u0151', # ő '\xcd'+'u': '\u0171', # ű '\xce'+' ': '\u02DB', # ˛ '\xce'+'A': '\u0104', # Ą '\xce'+'E': '\u0118', # Ę '\xce'+'I': '\u012E', # Į '\xce'+'U': '\u0172', # Ų '\xce'+'a': '\u0105', # ą '\xce'+'e': '\u0119', # ę '\xce'+'i': '\u012F', # į '\xce'+'u': '\u0173', # ų '\xcf'+' ': '\u02C7', # ˇ '\xcf'+'C': '\u010C', # Č '\xcf'+'D': '\u010E', # Ď '\xcf'+'E': '\u011A', # Ě '\xcf'+'L': '\u013D', # Ľ '\xcf'+'N': '\u0147', # Ň '\xcf'+'R': '\u0158', # Ř '\xcf'+'S': '\u0160', # Š '\xcf'+'T': '\u0164', # Ť '\xcf'+'Z': '\u017D', # Ž '\xcf'+'c': '\u010D', # č '\xcf'+'d': '\u010F', # ď '\xcf'+'e': '\u011B', # ě '\xcf'+'l': '\u013E', # ľ '\xcf'+'n': '\u0148', # ň '\xcf'+'r': '\u0159', # ř '\xcf'+'s': '\u0161', # š '\xcf'+'t': '\u0165', # ť '\xcf'+'z': '\u017E', # ž }