#前提
今現在、著:秋山智俊『恋するプログラム - Rubyでつくる人工無能』という本を読んでいます。この本自体がruby1.9で記述されており以下のサイトを参考にRuby2.7.4でサンプルコードを実行させたところうまく作動しませんでした。
https://b0npu.hatenablog.com/entry/2015/12/29/005538
#コード
コマンドプロンプトで入力した言葉を「~ってなに?」と聞き返すプログラムです。
Ruby
1class Responder 2 def initialize(name) 3 @name = name 4 end 5 6 def response(input) 7 return "#{input}ってなに?" 8 end 9 10 def name 11 return @name 12 end 13end 14 15class Unmo 16 def initialize(name) 17 @name = name 18 @responder = Responder.new('What') 19 end 20 21 def dialogue(input) 22 return @responder.response(input) 23 end 24 25 def responder_name 26 return @responder.name 27 end 28 29 def name 30 return @name 31 end 32end 33 34def prompt(unmo) 35 return unmo.name + ':' + unmo.responder_name + '>' 36end 37 38puts('Unmo System prototype :proto') 39proto = Unmo.new('proto') 40while true 41 print('>') 42 input = gets 43 input.chomp! 44 break if input == '' 45 46 response = proto.dialogue(input) 47 puts(prompt(proto) + response) 48end
#実行結果
Unmo System prototype :proto >konnichiha proto:What>konnichihaってなに? >konbanwa proto:What>konbanwaってなに? >こんばんわ proto:What>��������ってなに? > C:\Users\User\Desktop>
#問題点
英文を入力すると問題なく応答するのですが、日本語で入力すると反応がなくもう一度enterを押すと文字化けしプログラムが中断されてしまいます。
文字コードによる問題でしょうか?よろしくお願いします。
ちなみにrubyをインストールする際use utf-8 as default external encodingにチェックを入れてあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/12 12:02
2021/10/12 12:33
2021/10/12 14:18