質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

解決済

1回答

1646閲覧

Ruby コマンドライン上でDBから取り出した日本語の文字列を正しく表示するには?

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2016/08/30 04:57

###前提・実現したいこと
現在Rubyとsqlite3を用いてコマンドラインツールを制作しています。
無作為に数字を選出し、データベースからその数字と対応したidを振った項目を呼び出す、という。簡単なおみくじのようなものです。
例)"1"が選出される → "大吉|ラッキーカラーは緑|ラッキーアイテムはくまのぬいぐるみ",

この際の結果をコマンドプロンプト上で文字化けを起こさずに正しく日本語で表示するにはどうすれば良いでしょうか?
###発生している問題・エラーメッセージ

文字化け
Rubyのコマンドプロンプトからsqlite3を日本語の項目を含むテーブルを作成しました。
その後、そのテーブルから該当の項目を呼び出す"command.rb"ファイルを作成しコマンドプロンプト上で"Ruby command.rb" を実行すると、DBからの項目の呼び出し自体には成功するものの、日本語で入力した項目は全て文字化けしております。

###該当のソースコード

###試したこと
DBとコマンドプロンプトのエンコーディングを揃える、フォントを揃えるなどは一通り試しました。

###補足情報(言語/FW/ツール等のバージョンなど)
Ruby 2.0.0
sqlite3 1.3.11
です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

フォントは特殊なものを使っていない限り、通常は問題ありません。

OSはどちらをお使いですか?
Windowsなら通常SJISが採用されます。
macOS(OSX)、Linuxなどであればutf8が一般的です。

puts "あ"

と実行してみて、そもそも正しく表示できなければ、ターミナルとの文字コードがあっていません。
(rubyはたしか2.0からutf8が標準になったので、こちらを参考にソースコードの行頭で文字コードを指定してください。
http://www.trail4you.com/TechNote/Ruby/basic.html

また、windowsをお使いの場合、sqlite3はデフォルトでSJISを内部で扱うようです。
この場合は、Ruby側でencodeしてやるといいかもしれません。
http://ref.xaio.jp/ruby/classes/string/encode

万が一これで解決しない場合は、force_encodeも調べてみてください。

投稿2016/08/30 05:29

TatumakiGen

総合スコア72

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/30 08:24

迅速に回答いただきましてありがとうございます。 OSの記載を忘れていましたね、すみません。当方はwindowsでした。 早速試してみようと思います!ありがとうございました!
otn

2016/08/30 13:00

試した結果も書いてくださいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問