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