doudi4137 2013-11-07 13:30
浏览 42
已采纳

规范包:如何合并单独的字符?

I was expecting to get 밥 and 좋은, for the last two output.

for the output but This does not "combine" any of the following.

This package does not do anything.

Could anybody tell what I did wrong in this code? I would greatly appreciate it.

import "code.google.com/p/go.text/unicode/norm"
import "fmt"

func main() {
  str := "ㅈㅗㅎㅇㅡㄴ"
  fmt.Println( string( norm.NFD.AppendString(nil, "앉") ) )
  fmt.Println( string( norm.NFC.AppendString(nil, "바ㅂ") ) )
  fmt.Println( string( norm.NFC.AppendString(nil, str) ) )
}

The package is from here

go get -u code.google.com/p/go.text/unicode/norm http://godoc.org/code.google.com/p/go.text/unicode/norm

  • 写回答

1条回答 默认 最新

  • duandushang5148 2013-11-07 14:58
    关注

    Yes, it does something. If you observe the output from your first operation:

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

    You can see that it has successfully made a decomposition of your string, returning three code points in place of your original character. The first being :

    U+110B (HANGUL CHOSEONG IEUNG)
    

    While not visibly, this differs from the character in your str variable:

    U+3147 (HANGUL LETTER IEUNG)
    

    If you would make a composition of the characters you get as an output from the NFD, you would indeed end up with 앉 again.

    EDIT

    The letters in your str variable uses Hangul Compatibility Jamo characters which are only meant for backwards compatibility, but lacks semantic properties. If you want it to work, you should use the Hangul Jamo block instead.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?