4

无论如何,我可以将这个韩语辅音和元音组合成一个完整的字符。

例如,如果我有

  ㄱㅏㅁㅅㅏㅎㅏㅂㄴㅣㄷㅏ

这将是

  감사합니다

有没有办法做到这一点?我只能想到暴力破解每个必须计算很多案例的案例。

下面是我的尝试。不是最佳的,需要太多时间。

if strings.Contains(input_str, "ㅏㄴㅈ") {
    input_str = strings.Replace(input_str, "ㅇㅏㄴㅈ", "앉", -1)
}

if strings.Contains(input_str, "ㅏㄹㅂ") {
    input_str = strings.Replace(input_str, "ㅂㅏㄹㅂ", "밟", -1)
}

if strings.Contains(input_str, "ㅏㅂㅅ") {
    input_str = strings.Replace(input_str, "ㄱㅏㅂㅅ", "값", -1)
}
4

2 回答 2

7

你想要的是 Unicode 规范化来组成 hangul jamo。Go 在标准库中支持这一点,但(还)不支持。请参阅此相关问题

要导入外部go.text/unicode/norm包,请使用:

go get -u golang.org/x/text/unicode/norm

您可能想使用NFC来执行

  • 规范分解,
  • 其次是规范组合(这是你想要的)

NFD(分解)示例:

// 앉 -> 앉
fmt.Println( string( norm.NFD.AppendString(nil, "앉") ) )

NFC(组合)示例:

// 앉 -> 앉
fmt.Println( string( norm.NFC.AppendString(nil, "앉") ) )
于 2013-11-06T15:58:24.103 回答
2

最近有人用韩语写了一篇关于 unicode 的文章:http: //www.programminginkorean.com/programming/hangul-in-unicode/composing-syllables-in-unicode/

于 2013-11-11T21:44:26.257 回答