#!/use/bin/env python3
#coding=gb18030
fmt="'{}','{}'\n"
f = open('character_gb18030.sql','w', encoding='gb18030')
# 单字节部分(0x80 不在gb18030范围)
f.write('--echo 单字节部分\n')
for i in range(0x01, 0x80):
b = bytes([i])
code = b
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))
# 双字节部分1
f.write('--echo 双字节部分1\n')
for i in range(0xB0, 0xF7+1):
w1 = bytes([i])
for j in range(0xA1, 0xFE+1):
w2 = bytes([j])
code = w1+w2
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))
# 双字节部分2
f.write('--echo 双字节部分2\n')
for i in range(0x81, 0xA0+1):
w1 = bytes([i])
for j in range(0x40, 0xFE+1):
if j in [0x7f]:
continue
else:
w2 = bytes([j])
code = w1+w2
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))
# 双字节部分3
f.write('--echo 双字节部分3\n')
for i in range(0xAA, 0xFE+1):
w1 = bytes([i])
for j in range(0x40, 0xA0+1):
if j in [0x7f]:
continue
else:
w2 = bytes([j])
code = w1+w2
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))
# 四字节部分1
f.write('--echo 四字节部分1\n')
for i in range(0x81, 0x82+1):
dw1 = bytes([i])
for j in range(0x30, 0x39+1):
dw2 = bytes([j])
for m in range(0x81, 0xFE+1):
dw3 = bytes([m])
for n in range(0x30, 0x39+1):
dw4 = bytes([n])
code = dw1+dw2+dw3+dw4
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))
# 四字节部分2
f.write('--echo 四字节部分2\n')
for i in range(0x95, 0x98+1):
dw1 = bytes([i])
for j in range(0x30, 0x39+1):
dw2 = bytes([j])
for m in range(0x81, 0xFE+1):
dw3 = bytes([m])
for n in range(0x30, 0x39+1):
dw4 = bytes([n])
code = dw1+dw2+dw3+dw4
f.write(fmt.format(code.hex().upper(), code.decode('gb18030')))