Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

groonga.exe Can't input UTF-8 Japanese String on Windows environment. #439

Closed
hiroyuki-sato opened this issue Nov 30, 2015 · 17 comments
Closed

Comments

@hiroyuki-sato
Copy link
Contributor

Windows上でgroonga.exeをUTF-8の環境で使うと、日本語入力ができない。
日本語入力をすると、groongaのコマンドが終了してしまう。

  • OS: Windows7
  • Groonga: 5.0.9
> load --table Site
> [{"_key":"http://example.org/","title":"日本語1"},{"_key":"http://example.net/","title":"日本語2"},{"_key":"http://example.com/","title":"日本語3"}]

C:\Program Files\Groonga\bin>
  • 期待する動作: groongaのコマンド(load)が実行される。
  • 現在の動作: groonga.exeがすぐに終了してしまう。

再現方法

1, フォントの設定

コマンドプロンプト起動時、自動的に文字コードをUTF-8にして日本語もちゃんと表示できるようにする方法

2, コマンドプロンプト起動

3, コードページ変更

> chcp65001
Active code page: 65001

3, groonga起動

C:\Program Files\Groonga\bin>groonga.exe -n test2.db

4, テーブル作成

> table_create --name Site --flags TABLE_HASH_KEY --key_type ShortText
[[0,1448852689.869,0.0],true]

5, カラム作成

> column_create --table Site --name title --type ShortText
[[0,1448852701.622,0.0],true]

6, データロード

> load --table Site
> [{"_key":"http://example.org/","title":"日本語1"},{"_key":"http://example.net/","title":"日本語2"},{"_key":"http://example.com/","title":"日本語3"}]

C:\Program Files\Groonga\bin>
@kou
Copy link
Member

kou commented Nov 30, 2015

3の状態で何かプログラムを実行したとき(たとえばirb)、入力した日本語テキストのエンコーディングが何になっているか確認してもらえないでしょうか?UTF-8なのでしょうか?CP932なのでしょうか?

irb> "日本語".encoding

でわかるのかしら。

irb> "日本語".valid_encoding?

もやらないとダメかしら。

@kou
Copy link
Member

kou commented Nov 30, 2015

もし、コマンドプロンプトで入力したテキストがCP932ならUTF-8のデータを入力することは諦めた方がいいです。Groongaはエンコーディングを変換する機能を持っていないので。

前に、 @myokoym さんがGTK+ベースでGroongaのDBをさわるやつを作っていた気がしますが、そういう感じでコマンドプロンプトじゃないなにかでコマンドを使えるようにするのがいいんじゃないかなぁと思います。

@myokoym
Copy link
Member

myokoym commented Nov 30, 2015

前に、 @myokoym さんがGTK+ベースでGroongaのDBをさわるやつを作っていた気がしますが、

これですね: https://github.com/myokoym/groonga-database-viewer-gtk

紹介記事もあります: Groongaの既存のデータベースの中を見る3つの方法 - Qiita

@hiroyuki-sato
Copy link
Contributor Author

そもそもirbで日本語入力ができないという別の問題が生じました。orz

irb(main):001:0> "".encoding

なにがなんでも、Windowsでgroonga.exeを使いたいという人が出てくるのを待ちましょう。

@kou
Copy link
Member

kou commented Dec 1, 2015

これですね: https://github.com/myokoym/groonga-database-viewer-gtk

そうそう。

コマンドプロンプトで日本語入力するのは諦めた方がよさそうなので別のUIを用意する方がいいんじゃないかなぁと思います。

@cosmo0920
Copy link
Contributor

ちなみに・・・PowerShellではirbで日本語入力は可能です。

PS C:\Users\hhatake> irb
irb(main):001:0> "日本語".encoding
=> #<Encoding:Windows-31J>

でもWindows-31Jみたいですね・・・。

@hiroyuki-sato
Copy link
Contributor Author

@cosmo0920 さん
ありがとうございます。なぜかPSでも私の環境だと日本語がうまく入力できませんでした。
Windows-31Jですか...ますます、groonga.exeを使うのは難しそうですね。
別のUIを用意するのが良いですね。

@cosmo0920
Copy link
Contributor

もしかするとIMEによっては入力出来ない事もありそうですね。こちらの環境ではWindows 7 32bitでMicrosoft IMEです(Officeを入れるとついてくるMicrosoft Office IMEは使っていないです)。

@hiroyuki-sato
Copy link
Contributor Author

私も同じ環境です(と思います。OfficeのIMEがよくわからない..)
違いがわかりました。私PSで、chcp 65001したあとirbを起動しています。

初期状態だとコードページは932で日本語は入力できました。

、Windows-3.1J

chcp 65001の場合

  • PS起動
  • chcp 65001
  • irb
  • 日本語入力 -> NG

chcp 932

  • PS起動
  • chcp -> 932
  • irb
  • 日本語入力 -> OK

@hiroyuki-sato
Copy link
Contributor Author

ひらめいた!!、Jupyter でgroongaが使えればいいんだ!!
..と思いましたが、WindowsでJypterを動かすのも敷居が高そうですね。でもJuypterのgroongaプラグインほしいかも、ということでアイディアだけ残しておきます。

http://reiji1020.hatenablog.com/entry/2015/06/21/154223

@cosmo0920
Copy link
Contributor

たぶんWindowsで動かすには.NETやJVMで動かせるものの方が敷居が低くなって良いんじゃないかと思います。特に.NET製であればほぼどのWindowsマシンにも入っているので導入につまずくことは無くなると思います。。。と、アイディアだけ書き記しておきます。

@myokoym
Copy link
Member

myokoym commented Dec 2, 2015

@hiroyuki-sato
Copy link
Contributor Author

お!、いいですね。ぜひ質問者の方にもお知らせください。

@kou
Copy link
Member

kou commented Dec 8, 2015

@hiroyuki-sato 質問者の方にも伝えてくれてありがとうございます!とてもすばらしいことだと思います!ありがとうございます!

@hiroyuki-sato
Copy link
Contributor Author

天の声が聞こえたので補足しました。😀

@myokoym
Copy link
Member

myokoym commented Dec 8, 2015

ありがとうございます。助かりました。

@cosmo0920
Copy link
Contributor

@myokoym さんのツールもgroonga.orgの関連プロジェクトに記載するのが良いんじゃないかと思います。

@myokoym myokoym closed this as completed Dec 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants