golangでUTF-8-MAC→UTF-8

UTF-8-MACUTF-8に変換したくて四苦八苦していたんですが、UTF-8-MACUTF-8正規化したもので、iconvが独自に命名しているものとのことで、そこら辺を踏まえて調べてみたら、

この記事に正規化の方法が載ってたので、これを参考に

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

func DenormalizeUnicodeString(str string) string {
  buf := []byte(str)
  buf = norm.NFC.Bytes(buf)
  return string(buf)
}

こんな感じでいけました。

cgoを使用してiconvを使っても出来るんですが、クロスコンパイルが面倒なことになるので簡単な方法が見つかって何よりでした。