123456789101112131415161718192021222324252627282930313233343536 |
- #! /usr/bin/env python2.7
- #
- # get map from Python codec
- # return values:
- # r, e tables:
- # r: [ eord, uord ] table
- # e: list of warnings
- def getMap (enc, tip):
- if tip == 'SBCS':
- N = 256
- elif tip == 'DBCS':
- N = 65536
- else:
- assert False
- e = []
- r = []
- i = 0
- while i < N:
- try:
- if i < 256:
- x = chr(i).decode(enc).encode('utf-16le')
- else:
- x = (chr(i / 256) + chr(i % 256)).decode(enc).encode('utf-16le')
- except UnicodeDecodeError:
- # e.append( '\t\t\tcan not decode CHR(%d)=0%02XX from %s encoding' % (i, i, enc) )
- pass
- else:
- if len(x) == 2:
- x = ord(x[0]) + 256 * ord(x[1])
- r.append( (i, x) )
- else:
- e.append( '\t\t\tcan not encode CHR(%d)=0%02XX from %s encoding to UCS-2' % (i, i, enc) )
- i = i + 1
- return r, e
|