WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:cgiでの半角カナの使用について

0:[投稿] cccgi [2004/12/11 10:22 ][環境:IE6 linux perl5.8 mysql4.0 apache2]

今まで、慣習的に半角カナは悪いものだから<input>などからそれがサーバに
送られて来たときには全角カナに変換してDB等に格納するというのを行って
きたのですが今でもこの認識はあっていますでしょうか?

私の環境ではサーバはeuc(linux)ですしブラウザへ返す文字もeucを使用して
います。
この場合、ブラウザで表示するする限り半角カナでのトラブルは考えられない
と思うのですがどうでしょうか?


1:[回答] AC1号 [2004/12/12 23:44 ]

いわゆる半角カナはJIS X 0201に定義されており(半角、と呼ぶのは変なのだが)、euc-jpでも定義されているため、サーバ側で問題が起こることはないでしょう。
また、ブラウザにeuc-jpの文書を送信する場合も、サーバ側でcharset=euc-jpと言って送れば問題ありません。

次に述べる条件の下でブラウザからサーバにデータを送る時、問題が起きる場合があります。それは、間に文字コードを変換するproxyが挟まった場合です(この問題は、半角カナの使用とは関係なく起こります)。
例えば、サーバ側でeuc-jpで文書を送出し、proxyでeuc-jp→shift_jisに変換されたとします。その場合、クライアント側ではshift_jisで表示を行い、サーバへのPOSTもshift_jisで行います。proxyは(URLEncodeされた)shift_jisのまま通し、サーバ側はshift_jisで受け取ることになります。
>>0 のようにサーバ側がeuc-jpと決めうちしていると問題が起きます。
回避するには、input type="hidden"に隠し文字を入れておいてそれでcharsetを判別します(普通に自動判別を行おうとすると半角カナなどを正しく判別できない)。

Webで半角カナを使うことで問題が起きることはありません。

しかしながら、半角カナの使用により文字の一意性に問題がでます。DBから検索を行う場合、全角・半角カナが混在していると、検索が困難になります。したがって、どちらかに統一しておくことは必要でしょう。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World