[#43191] ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

13 messages 2007/02/17
[#43193] Re: ActiveTclのインストール — Hidetoshi NAGAI <nagai@...> 2007/02/18

永井@知能.九工大です.

[#43198] Re: ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...> 2007/02/18

永井さん、アドバイスありがとうございます。

[#43217] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

13 messages 2007/02/24

[ruby-list:43171] Re: CGIで受け取ったデータをファイルに書き込む際のエラー

From: "U.Nakamura" <usa@...>
Date: 2007-02-08 15:41:30 UTC
List: ruby-list #43171
こんにちは、なかむら(う)です。

In message "[ruby-list:43169] Re: CGIで受け取ったデータをファイルに書き込む際のエラー"
    on Feb.09,2007 00:29:23, <cxp04754@nifty.com> wrote:
| BBSを携帯電話でも見られるようにしたいので、
| 内部の処理はEUC、出力はSJISに変換しているのですが、
| そのあたりが問題なのでしょうか。

bbsdata/*.txt の中身はEUC-JPのつもりだということでいいんです
よね?
で、それを表示する際にどうやっているかによるんじゃないでしょ
うか。


| > cgi = CGI.new
| > messages = cgi["messages"]
| > names = cgi["names"]
| 
| の、messagesとnamesをアルファベットのみにすると、
| 文字化けはなくなり、正しい曜日が表示されます。

と、いうことは、messagesとnamesはいったいどのような文字エンコ
ーディングで送られてきているのでしょうか?
また、このスクリプトはどんな文字コードで書かれているのでしょ
うか?

話の内容から想像するに、このCGIを呼び出す元になるHTMLはShift_JIS
で書かれているのではないかと思います。
だとすると、普通のブラウザなら、messagesやnamesはShift_JISで
送ってきているのだろうと思います。

一方、このスクリプトはEUC-JPで書かれているのでしょう。
よって、

| wdays = ["日", "月", "火", "水", "木", "金", "土"]

この各曜日の文字列はEUC-JPということになります。

それを後でくっつけてからKconv.toeucしてるので、期待と異なる余
計な変換が行われているのだろうと思います。

というわけで、以上の前提が正しいなら、

| f.write(Kconv.toeuc(messages + "," + names + "," + times) + "\n")

を、例えば

 f.write(Kconv.toeuc(messages + "," + names) "," + times + "\n")

とすれば、(完全じゃない可能性はありますが)ほぼ期待の出力が得
られるのではないでしょうか。


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>



In This Thread