[ruby-list:49019] Re: [ruby-list:49017] 文字コード変換で煮詰まっています。

From: "TAKANO `takano32' Mitsuhiro" <tak@...32.tk>
Date: 2012-11-27 07:26:03 UTC
List: ruby-list #49019
たかのです。

> つなぐサーバーの文字コードはUTF8なのですが、コンソールで文字化けするため、

サーバはUTF-8なのに

> send_cmd("PRIVMSG #{@channel} #{Kconv.tojis(input)}")
>
> ここをsjisに変えたら、送信できるようになりましたが、IRC側で文字化けします。

ShiftJISで送るようにしたら、文字化けすると思います。



というのと、ターミナルに設定されている受信した文字コードの設定は
何に設定されているのでしょう。

「コマンドプロンプト」なら規定はShiftJISだと思います。
もし、送信メッセージがサーバなどからのエコーバックでないので、
UTF-8の設定で送信して文字化けするのではないでしょうか。

> while msg = Kconv.toutf8(@irc.gets).split
>
> をsjisに変えたところ、IRC側からの送信はコンソールに表示されます。

これも自身には正常にみえているかもしれませんが、周囲からは文字化けに
なっているかもしれないですね。周りはUTF-8の受信を準備しているのに、
ShiftJISで送信するコードになっているので。

* ターミナル(「コマンドプロンプト」?)の入出力文字コード
* サーバの送受信文字コード
* プログラムが送受信している文字コード

について考察するとよいと思います。

2012年11月27日 15:25 井澤 隆浩 <KHB15150@nifty.ne.jp>:
> 初めまして、井澤隆浩と申します。Rubyをかじり始めたばかりの初心者です。
> http://d.hatena.ne.jp/curi1119/20080506/1210062892
> このスクリプトを動かしたく、打ち込んだのですが、私の環境がWin7であること
> もあってか、
> 文字コードの変換で煮詰まっています。
>
> つなぐサーバーの文字コードはUTF8なのですが、コンソールで文字化けするため、
>
> while msg = Kconv.toutf8(@irc.gets).split
>
> をsjisに変えたところ、IRC側からの送信はコンソールに表示されます。
> てこずっているのが送信側で、
>
> send_cmd("PRIVMSG #{@channel} #{Kconv.tojis(input)}")
>
> ここをsjisに変えたら、送信できるようになりましたが、IRC側で文字化けします。
>
> いろいろ試行錯誤してみたのですが、わかりません。ご教示お願いします。
>
> いざわたかひろ
>
>

In This Thread