示例用法:
以下示例代码片段:import sys
from unicodeutil import UnicodeData, compose_hangul_syllable, \
decompose_hangul_syllable
ucd = None
def pprint_composed(jamo):
hangul = compose_hangul_syllable(jamo)
hangul_data = ucd[hangul]
print(" -> {1}".format(
", ".join([" ".join([jamo_data.code, jamo_data.name])
for jamo_data in [ucd[j] for j in jamo]]),
" ".join([hangul_data.code, hangul_data.name])
))
def pprint_decomposed(hangul, decomposition):
hangul_data = ucd[hangul]
print("{0} -> ".format(
" ".join([hangul_data.code, hangul_data.name]),
", ".join([" ".join([jamo_data.code, jamo_data.name])
for jamo_data in [ucd[jamo]
for jamo in decomposition if jamo]])
))
def main():
if len(sys.argv) not in {2, 3, 4}:
print("Invalid number of arguments!")
sys.exit(1)
global ucd
ucd = UnicodeData()
if len(sys.argv) == 2:
hangul = int(sys.argv[1], 16)
print("Canonical Decomposition:")
pprint_decomposed(hangul,
decompose_hangul_syllable(hangul,
fully_decompose=False))
print("Full Canonical Decomposition:")
pprint_decomposed(hangul,
decompose_hangul_syllable(hangul,
fully_decompose=True))
elif len(sys.argv) in {3, 4}:
print("Composition:")
pprint_composed(tuple([int(arg, 16) for arg in sys.argv[1:]]))
if __name__ == "__main__":
main()
将生成以下内容(在Python2和Python3中测试):$ python pprint_hangul.py 0xD4DB
Canonical Decomposition:
U+D4DB HANGUL SYLLABLE PWILH ->
Full Canonical Decomposition:
U+D4DB HANGUL SYLLABLE PWILH ->
$ python3 pprint_hangul.py 0xD4CC 0x11B6
Composition:
-> U+D4DB HANGUL SYLLABLE PWILH
$ pypy pprint_hangul.py 0x1111 0x1171 0x11b6
Composition:
-> U+D4DB HANGUL SYLLABLE PWILH