(qrunch.ioより転記)
これな
実は会社で HyperEstraier を使ったWindows 製品の保守をちょっとだけしているのですが、標準のコマンドラインツール estcmd は UTF8 でして、ANK 文字ならいいんですが、日本語が入るとコマンドラインは CP932 (ShiftJIS+α)なので、つらいことに!
ということで、Go言語でラッパーを作りました。といっても、検索側の機能だけで、インデックスを作成する方はまだ未実装です(そのうち、必要になったら作りますが、とりあえず目下の問題が解消されたので、すぐやる必要がなくなってしまった!)
この手のツールは、"cgo" を使ってC言語ライブラリをスタティックリンクするのが普通なんですが、自分はついつい慣れた「syscall.NewLazyDLL で Windows のバイナリライブラリを呼び出す」という方法の方を使ってしまいます。プロプライエタリなソフトウェアならともかく、オープンソースソフトウェアのライブラリで、それやる必要あんの?という感じですが、ジジイはついつい慣れた方法を使ってしまうものなのです。
ほとんど自分しか使わないツールですが、もし他に使う人がいらっしゃるようであれば、まじめに改善に取り組みますので、コメントください