スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JSPの文字コード指定

JSPの文字コードにはいつも悩む。
今やってるプロジェクトは Linux + Apache&Tomcat + Java なので、最初わたしは全てのエンコードをEUC-JPにしていた

いままでこれでうまくいってたからっていう理由だけなんだけど。

DBに登録しようとした一部特殊文字(波ダッシュ)が登録できない

postgreSQLのエンコードはEUC-JPだし、JAVAを介さずに直接登録すれば涙ダッシュ(~)もちゃんと登録できてる。
リクエストエンコードも、ちゃんとフィルタを使用してEUC-JPにしてるのに・・・なぜ??
調べたところJavaにおける日本語の扱いとか、UnicodeとSIFT-JISのマッピングの違いとかの問題で。
(結局よく分からなかった。。。みんなスゴイなぁ)

いろいろ試したのだけど、リクエストのエンコードをWindows-31Jにすればうまくいくという結果が得られた。
だからJSPのpageディレクティブでもCHARSETはWindows-31Jに変えた。

・・・はいいけど、JSPファイル自体はEUC-JPで書いてるんだよね。
charsetの調整とかするたびにファイル自体の文字コード変更するのって
ちょっと理不尽な気がする。

と、ためしに、pageEncodingの設定だけEUC-JPにしてみた。
こんな感じで。
<%@ page contentType="text/html; charset=Windows-31J;" pageEncoding="EUC-JP"%>

なんと、問題ないみたいです。

「charsetとページエンコードは同じじゃないといけない?」
というここ何年来ワタシの中にあった勝手な定説は覆された。

ページエンコーディングとコンテキスト設定でのCHARSETの設定って
一緒じゃなくていいんだー


とはいえ、客先への改修報告も必要なわけで。
文字コードの問題は今回かなりまじめに向き合ってみたのだけど
結局、他人に説明できるほどには理解できなかった。
だれかやさーしく説明してくれたらいいのに。
スポンサーサイト

テーマ : WEB系のお仕事
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ブログ内検索
記事リスト
リンク
アーカイブ
RSSフィード
ブログ全記事表示

全ての記事を表示する

プロフィール

アール

Author:アール
育児休業中のプログラマーです。

最近の記事表示
最近のコメント
最近のトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。