- PR -

エンコード/自動選択(チェック無)の制御について

投稿者投稿内容
NOB
常連さん
会議室デビュー日: 2004/03/02
投稿数: 49
投稿日時: 2006-08-22 08:43
今回、本現象が発生した経緯は、Windows特殊文字の「〜」を使いたかった為、
プログラム作成者が下記コーディングに変更したことからはじまりました。

【変更前】<%@ page contentType="text/html; charset=Shift_JIS"%>
            ↓
【変更前】<%@ page contentType="text/html; charset=Windows-31J"%>

そして
http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html


「・・・よって文字コードをWebブラウザに確実に伝えるには、Webサーバが送信する
Content-Typeヘッダを使えばよい。逆にいえば、HTML文書内でMETA宣言を指定したと
してもムダになるケースが多い。・・・」
と記載してあったことから、META指定をつけなかったとのことです。

でもテスト結果は、META指定をする「表示_エンコード_自動選択(チェック有)」
でも充分大丈夫だったことから

<meta http-equiv="Content-type" content="text/html; charset=Windows-31J">

を追記し回避しようと思います。しかし文字コードの罠は、本当に深いですね。

NOB
常連さん
会議室デビュー日: 2004/03/02
投稿数: 49
投稿日時: 2006-08-22 09:04

もうしわけありません。前回のスレで

「でもテスト結果は、META指定をする「表示_エンコード_自動選択(チェック有)」
でも充分大丈夫だったことから〜」

なんて書きましたが、駄目みたいです。もう少しテストしてみなさんに結果を
お知らせします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-08-22 09:31
文字コードの指定がない場合や、指定された文字コードが未サポートの場合、
ブラウザのほうで文字コードの自動判別を試みて表示するわけで、
文字コードを設定したつもりになっていたけど、
実は単に自動判別がうまくいっていただけでした、というケースもあります。

一見正しく動いているように見えるだけにたちが悪いですね。
IEはmetaでのcharset指定の際に"Windows-31J"をサポートしていなかったような。
あえて"Shift_JIS"にしないと自動判別任せになった気がします。
NOB
常連さん
会議室デビュー日: 2004/03/02
投稿数: 49
投稿日時: 2006-08-22 09:37
nagise さんのいうとおり、

○ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

× <meta http-equiv="Content-type" content="text/html; charset=Windows-31J">

でした。ただ目的の「〜」が上手くいくか否かはもう少しテストが必要です。
もう少し粘ってみます。
NOB
常連さん
会議室デビュー日: 2004/03/02
投稿数: 49
投稿日時: 2006-08-22 09:37
nagise さんのいうとおり、

○ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

× <meta http-equiv="Content-type" content="text/html; charset=Windows-31J">

でした。ただ目的の「〜」が上手くいくか否かはもう少しテストが必要です。
もう少し粘ってみます。

スキルアップ/キャリアアップ(JOB@IT)