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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

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

Q&A

1回答

544閲覧

gets.chompで入力を受けた文字列(日本語に限る)の先頭に変な文字が入る件

yoshi_10_11

総合スコア241

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

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

1グッド

3クリップ

投稿2019/02/08 03:06

編集2019/02/08 04:53

コマンドプロンプトから起動して、検索ワードを入力すると自動でWebから検索してくれる仕組みをRubyで構築しています。
その仕組みの構築のためgets.chompを入れているのですが、日本語の場合のみ、想定外の文字が挿入されてしまう症状が出て困っています。

chcp値932(Shift_JIS)
Windows 10 Home
Ruby 2.3.3

ruby

1Encoding.default_external = Encoding::UTF_8 2 3require 'selenium-webdriver' 4require 'csv' 5require 'nkf' 6require 'uri' 7p "検索ワードを入力してください" 8search_word = gets.chomp 9 10require 'debug' 11 12以下略

例えば、上記プログラムを起動して【あああああ】と入力、debugで動作を止めて

ruby

1puts search_word.force_encoding('SJIS')

と入力したところ

ruby

1??あああああ

と出力されてしまいます。(「?」は背景がダイヤの形をしている文字化けしたときによく出る記号です)
この文字化けの部分を調べるため文字コードを調べたところ

ruby

1"¥xA0xFF¥x82¥xA0¥x82¥xA0¥x82¥xA0¥x82¥xA0¥x82¥xA0"

と出力されました。おそらく¥xA0xFFが怪しいのだと思うのですが、こちらを16進数変換などで調べても解決しませんでした。

また、【検索ワード】と入力して同様の処理をしてみたところ、

ruby

1??検索ワード

と同じく出力されてしまいます。
そして、文字コードを調べたところ、

ruby

1"¥x9F¥xFF¥x8C¥x9F¥x8D¥xF5¥x83¥x8F¥x81[¥x83h"

と出力されました。こちらはおそらく¥x9F¥xFFが怪しいです。

英字や数字のみのWordを入力した場合には問題なく入力されます。
文字入力の際にひらがな入力にするために「半角/全角」を押していたのでそれをやめてみたのですが変化はありませんでした。

この文字の正体と原因を教えていただけないでしょうか。よろしくお願いいたします。m(_ _)m

追記

ruby

1search_word.encoding('SJIS')

でエンコードを確認すると

ruby

1<Encoding:UTF-8>

と表示されますので、文字コードに問題があるわけではないのかなと思います。

DrqYuto👍を押しています

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

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

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

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

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

guest

回答1

0

対策ではなかったため取り下げ

投稿2019/02/08 19:21

編集2019/02/08 19:31
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問