rubyで、チャット出来るプログラムを作りたいのですが文字化けの対処法が分からずいきなり躓いています。
多人数がチャットできるプログラムを作ろうと、webサイトを参考にしながら作り始めたのですが、プロンプトで、日本語を入力するとサーバーに渡った文字が正しく表示されないです。どこがおかしいのでしょうか。
サーバー側 [sever.rb]
require "socket"
server = TCPServer.new(12345)
sockets = [server]
loop do
r_sockets = IO.select(sockets)[0]
r_sockets.each do |socket|
case socket
when TCPServer
client = socket.accept
sockets << client
when TCPSocket
unless socket.eof?
p mes = socket.gets
for i in sockets.drop(1)
i.puts mes
end
else
socket.close
sockets.delete(socket)
end
end
end
end
クライアント側 [client.rb]
require 'socket'
$socket = TCPSocket.open("localhost",12345)
Thread.new{
loop do
$socket.puts(gets.chomp) if $socket
end
}
while $socket
p $socket.gets.chomp
end