问问题
1910 次
1 回答
2
您必须分解韩语音节并将它们存储到 SQL 数据库中的单独列中(如 ㅈㅓㅇㅅㅜㅇㅕㄴ 用于정수연)。我建议您编写一个小型自定义应用程序来解析您的数据库,分解所有韩语音节,并将结果保存到单独的列中。
编辑
下面是一些分解韩文音节的 Python 代码:
#!/usr/local/bin/python
# -*- coding: utf8 -*-
import codecs, sys, os, math
JLT="ㄱ,ㄲ,ㄴ,ㄷ,ㄸ,ㄹ,ㅁ,ㅂ,ㅃ,ㅅ,ㅆ,ㅇ,ㅈ,ㅉ,ㅊ,ㅋ,ㅌ,ㅍ,ㅎ".split(",")
JTT=",ㄱ,ㄲ,ㄱㅅ,ㄴ,ㄴㅈ,ㄴㅎ,ㄷ,ㄹ,ㄹㄱ,ㄹㅁ,ㄹㅂ,ㄹㅅ,ㄹㅌ,ㄹㅍ,ㄹㅎ,ㅁ,ㅂ,ㅂㅅ,ㅅ,ㅆ,ㅇ,ㅈ,ㅊ,ㅋ,ㅌ,ㅍ,ㅎ".split(",")
JVT="ㅏ,ㅐ,ㅑ,ㅒ,ㅓ,ㅔ,ㅕ,ㅖ,ㅗ,ㅘ,ㅙ,ㅚ,ㅛ,ㅜ,ㅝ,ㅞ,ㅟ,ㅠ,ㅡ,ㅢ,ㅣ".split(",")
SBase=0xAC00
SCount=11172
TCount=28
NCount=588
def HangulName(a):
b=a.decode('utf8')
sound=''
for i in b:
cp=ord(i)
SIndex = cp - SBase
if (0 > SIndex or SIndex >= SCount):
# "Not a Hangul Syllable"
pass
LIndex = int(math.floor(SIndex / NCount))
VIndex = int(math.floor((SIndex % NCount) / TCount))
TIndex = int(SIndex % TCount)
sound=sound+(JLT[LIndex] + JVT[VIndex] + JTT[TIndex]).lower()
return sound
print HangulName("정수연")
dda$ python test.py
ㅈㅓㅇㅅㅜㅇㅕㄴ
于 2012-10-07T03:48:05.093 回答