[過去ログ] Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
449: デフォルトの名無しさん [sage] 2016/07/02(土) 16:12:53.91 ID:0c7wAYOM(1/6) AAS
以前、人工無能についてお聞きしたものです。以下のプログラムが文字化けしているので、
return "#{input}?A?A?E?E?H"
上記の部分を
return "#{input}って何?"
に書き直すとEncording::CompatibilityErrorが出てしまいます。ユーザーの入力場面でローマ字のままで
入力した場合は問題ないのですが、漢字やひらがなが入っていると、エンコードのエラーが出てしまいます。
いろいろと調べてみたのですが、うまい方法が見つからなくて困っています。どなたかご教授いただけないでしょうか?
なお、文字化けしたままの状態であれば、漢字・平仮名入力でもエラーは出ません。よろしくお願いします。
451(2): デフォルトの名無しさん [sage] 2016/07/02(土) 16:25:16.33 ID:0c7wAYOM(2/6) AAS
>>450すみません、質問の意味が理解できません。ですが、プログラムの先頭には#! ruby -Ksとあります。
454: デフォルトの名無しさん [sage] 2016/07/02(土) 16:44:01.84 ID:0c7wAYOM(3/6) AAS
>>453すみません、それもわかりません。面目ない・・・
456(2): デフォルトの名無しさん [sage] 2016/07/02(土) 16:52:56.82 ID:0c7wAYOM(4/6) AAS
>>455455(1): デフォルトの名無しさん [sage] 2016/07/02(土) 16:44:17.44 ID:rfELLhTB(3/4) AAS
>>451
-KsってことはエンコーディングとしてShiftJISを指定しているわけだけど
ソースファイルはちゃんとShiftJISで保存できてる?
更にinputにShiftJIS以外の文字列が来てるんじゃない?
例えばWindowsだったらコマンドプロンプトで入力するとShiftJISじゃなくてWindows31Jだからね
ご指摘にあるようにShiftJIS、Windows32Jなどググってみたのですが、どれも書いてあることが理解できませんでした。
もうちょっと基本的な用語を調べなおして、改めて質問させていただきます。ありがとうございました。
464: デフォルトの名無しさん [sage] 2016/07/02(土) 22:24:30.36 ID:0c7wAYOM(5/6) AAS
>>459459(1): デフォルトの名無しさん [sage] 2016/07/02(土) 17:01:53.20 ID:rfELLhTB(4/4) AAS
>>456
input を input.encode(Encoding::Shift_JIS) に書き換えればうまくいくかも
windowsで日本語を扱うのって面倒だよね
アドバイスありがとうございます。試してみましたがうまくいかないようです(なんか変なことしているかも)。
ちょっと、このエンコードという問題はだいぶ難しそうなので、とりあえずRubyの基本を先にしっかり勉強したいと思います。
もっとも直近の目標が人工無能なので、遅かれ早かれ絶対に克服しなければならない問題なのは確かですが…
いずれにせよ、理解できないからと言っていつまでも足踏みしている暇はないので先に行きます。他の皆さんもありがとうございました。
467: デフォルトの名無しさん [sage] 2016/07/02(土) 22:50:14.62 ID:0c7wAYOM(6/6) AAS
>>466466(1): デフォルトの名無しさん [sage] 2016/07/02(土) 22:41:05.68 ID:no/g4eo0(2/2) AAS
サクラエディタ・TeraPad などで、文字コードを見れば?
Unix系は、UTF-8。
Windowsは、shift-jis, cp932(Windows31J)
改行コードも異なる
shift-jisに、Windowsだけの環境依存文字(@、丸で囲んだ数字など)を、加えると、cp932となる
Windowsだけの環境依存文字を使うと、shift-jisよりも、バグる確立が大きい
ありがとうございます。もういいや、と思って別のことやろうと思いましたが、念のためTeraPadで打ち込んでみたら右下にエンコードがでました。
「UTF-8N」とあるようです。ところで、自分はきれいで見やすいとNETで評判の?SublimeText3を使っているんですが。エディタによっても結構違うんですね。
465さんのpaiza.IOみたいなエディタがあると便利なんですが、まあないものねだりしてもしょうがない。あまり、自分の質問だけでスレッドを私物化するのも
申し訳ないので、ここらでクローズさせていただきます。重ね重ねのアドバイスありがとうございます。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.047s