XMLマスター プロフェッショナル 文字エンコーディング

XMLマスタープロフェッショナルの試験で、文字エンコーディングの問題が出題されたのだが、
ここも自信を持って答えることができなかった。

緑本などでは、メディアタイプとcharset、XML宣言中のエンコーディングの組み合わせで決まる表が記載されている。私はこれを暗記して試験に臨んだが、実際の問題は、それぞれの意味や動きを理解していなければ解けないような問題であった。

そもそも、このメディアタイプとcharsetをどこで使うかすら分かっていなかったのだが、答えは身近なところにあった。
最近、Servletの基礎を勉強していたのだが、簡単なServletでHttpResponseを返す処理を生成する際、setContentTypeメソッドでセットしているのがそれであった。
ここに、ContentTypeとcharsetを下記のような形で、設定している。

setContentType(“text/xml; charset=utf-8”);

ここで設定したcharsetがブラウザ上の文字エンコーディングに使われる。実際に動作させ、レスポンスを表示した際、ブラウザの文字エンコーディングを見てみると、ここで設定したcharsetの文字が選択されていた。この場合はutf-8が選択されていた。また、Windows-31Jなどをセットすると、Shift-JISが選択されていた。
この文字エンコーディングを省略した場合、us-asciiが自動的に設定されるということだが、ブラウザ上のエンコードはShift-JISが設定されていた。しかし、2バイト文字は文字化けを起こしていた。たぶん、ブラウザ上のエンコード選択肢にはus-asciiがないので、勝手にShift-JISが選択されたのだろう。

色々と実際に試してみると、知識と繋がってくるのでなかなか面白い。

そんな一コマであった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です