[PHP-users 9072] Re: Mac版ネスケの文字コードに関する

Ryotaro Shimazu php-users@php.gr.jp
Sat, 3 Aug 2002 15:25:52 +0900


島津です。


久保田様ありがとうございます。

> > Mac版ネスケ4.7のユーザーがshift_jisで書かれた
> > http://www.hogehoge.com
> > にアクセスすると、
> > confirm.phpの送信ボタンを押すと、result.phpでshift_jisの説明文を受け取
> > ること
> > になるというご相談です。
>
> ネスケをメインで使わなくなって久しいので、ネスケ自体の挙動については
> よくわかりませんが、confirm.phpでは<head>タグ内などでエンコーディングの
> タイプをブラウザに知らせていますよね?

はい、メタタグの指定は行っています。

> それでもダメな場合は、三村さんがおっしゃるように、result.phpで
> 受け取った値の文字コードを調べてShift-JISに変換してやれば良いのでは?

はい、そうするのが基本のようですね。藤井様のご意見にもありました。

でも、皆さん、こんな面倒くさいことやっておられるのでしょうか? 率直な疑問な
んです。

エラーチェックとして
・入力必須チェック
・lengthチェック
・型チェック
などは当たり前として、エンコードのチェックも必要なのですね。

そして、エンコードでエラーが発生した場合、エラーメッセージで回避するのではな
く、希望するエンコードにプログラムで変換してあげるのが親切であり、基本なんで
すね。勉強になります。

> ・・・と、ここまで書いていたら島津さんから新たなレスが・・・(汗)
>
> >文字列のencodingを必ず判断するというのはプログラムの常識であれば
>
> 必ずということはないと思いますが、疑わしい場合はやるべきだと思います。
> この場合、一旦SJISのページを読みに行った後で送信ボタンを押すという
> 行為が原因なのかもしれません。

はい、それが原因のようです。直前のページのエンコードを引きずっています。もの
すごいバグだと思います。

>ネスケでも、普通にEUC-JPのページから
> POSTしたものはEUC-JPで送られているのであれば、このリンクの確認
> みたいな動きをさせるところだけ文字コードの確認をすればいいのでは
> ないかと思います。あくまで私的な意見ですが。
>

最初のメールにも書いたのですが、今回のケースだけなら場当たり的に解決できるの
ですが、例えば掲示板などで、URLなどを自動リンクさせている場合、問題が起こる
可能性があります。

掲示板の投稿(EUC)を読んだMac版ネスケ4.7ユーザーが投稿にあるURLをクリック。
shift_jisのページを閲覧。その後、自分でも投稿しようとした場合、文字化けが発
生します。

結構、こういうケースはありそうです。ですので、やはり皆様のご意見どおり、エン
コードを前提としないプログラムにすべきであるという結論になりそうです。私とし
ては、Postする送信データのエンコードを指定する方法があれば、一番楽だと思った
のですが、それ自体はなさそうですね。もしあるのであれば、どなたかお教えくださ
い。

皆さん、本当にありがとうございました。

島津 良太郎
rshimazu@kaiteki-net.com