- PR -

Tomcat5.0.28のエンコード設定についての質問

投稿者投稿内容
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-04-06 11:03
文字コードは私も弱いですが、ここらへんが関係してませんか。

http://www.ingrid.org/java/i18n/encoding/shift_jis.html

--追記

ああ、違うかも。
よく見たらJSPの文字コード指定してない?
htmlのmetaタグじゃなくてjspのスクリプトレットで指定してみは。

[ メッセージ編集済み 編集者: (株)ぽち 編集日時 2005-04-06 11:07 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-04-06 11:15
JSPの場合、META宣言は効かないようです。
JSPに直接記述してあるコードなら、pageディレクティブを記述してください。
こんな感じ。
コード:

<%@ page contentType="text/html;charset=shift_jis" %>


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

[ メッセージ編集済み 編集者: Edosson 編集日時 2005-04-06 11:18 ]
孤立状態
会議室デビュー日: 2005/03/31
投稿数: 19
投稿日時: 2005-04-06 12:29
『(株)ぽち』様、『Edosson』様
早速のお返事有難うございます。

おっしゃるとおりJSPの先頭に

『<%@ page contentType="text/html;charset=shift_jis" %>』

を追加しましたところ正常に表示されました。
ただ、外字(?)にあたる『ax等は文字化けしたままです。

システムの性質上、このような文字をエントリー系の画面に
使用することが予測されますので、この点も解決したいのですが、
システム全体のエンコードを『UTF-8』に統一するべきなのでしょうか?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-04-06 14:09
エンコーディングの違いによって文字が化けるのであれば、
Shift-JISでもUTF-8でも、必要なものに統一すればいいです。

外字は基本的には個々のマシン上にしか存在しないものですから、
エンコーディングをなににしようが、何の解決にもなりません。

表示に使うだけで入力には使わない、というのであれば、
いっそ、グラフィックにしてしまえば?
エンコードの違いに由来する文字化けでなく、本当に外字を使用したいのであれば、ですが。

[ メッセージ編集済み 編集者: Edosson 編集日時 2005-04-06 14:10 ]
孤立状態
会議室デビュー日: 2005/03/31
投稿数: 19
投稿日時: 2005-04-06 15:06
『Edosson』様、有難うございます。

私の説明に語弊があったようなので『外字』としていましたが、
自分なりに参考文献を読み散らかした情報によると『機種依存文字』
と書かれていました。

私も焦っていますので、自分なりにテストをした結果を以下に示します。

実験@-------------------------------------------------------------------------
【設定内容】
その機種依存文字を扱うに当たって、文字コードを『UTF-8』にするために
全ての設定を『UTF-8』に変更しました。
『[%CATALINA_HOME%]\\conf\\web.xml』
『(アプリケーションの)web.xml』
『JSPファイルのpageディレクティブ』
【結果】
文字化けは解消せず。ひどくなりました。

実験A-------------------------------------------------------------------------
【設定内容】
その機種依存文字を扱うに当たって、文字コードを『Windows-31J』にするために
全ての設定を『Windows-31J』に変更しました。
【結果】
文字化けは解消しました。

考察@-------------------------------------------------------------------------
エンドユーザのクライアントOSがMac・Windows混在の可能性もあり、出来るだけ
マルチOSでの動作が望ましいと思われます。
ここで、『Windows-31J』を指定した場合、MacOSで正しく動作できるのか?
という問題が発生します。
妥協案として、MacOS上でブラウザをIEとした場合、可能となるか?
いずれにしても、Macが手元に無いためテストできずに地団駄を踏んでます。

考察A-------------------------------------------------------------------------
『「実験@」で文字化けしたのは何故か?』そして『「実験A」で成功したのは何故か?』
ということを冷静に考えたとき、この差は何なのか?
もしかしてEclipseのエディタの設定が『MS932』になっていることが関係しないか?


何を書いているのか自分でも意味不明になってきましたが、
言わんとしている事は以上の通りです。
引き続き『考察A』を検証していきますが、少しでも『これかも』という情報が
ありましたら、ご教授くださいますようお願いいたします。


Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-04-06 15:17
引用:

実験@-------------------------------------------------------------------------
【設定内容】
その機種依存文字を扱うに当たって、文字コードを『UTF-8』にするために
全ての設定を『UTF-8』に変更しました。
『[%CATALINA_HOME%]\conf\web.xml』
『(アプリケーションの)web.xml』
『JSPファイルのpageディレクティブ』
【結果】
文字化けは解消せず。ひどくなりました。


JSPファイルそのものを、UTF-8に変換しましたか?
エンコーディングを変更したなら、それらに関わるファイルのエンコードも
それに合わせて変更しなければなりませんよ。

MacでWindows-31の文字化けはさけられないでしょう。MS-Officeでも、
Win版とMac版の間で文字化けが発生しますし。

[ メッセージ編集済み 編集者: Edosson 編集日時 2005-04-06 15:18 ]
孤立状態
会議室デビュー日: 2005/03/31
投稿数: 19
投稿日時: 2005-04-06 16:59
『Edosson』様、迅速なご返事有難うございます。

おっしゃるとおり、『UTF-8』で文字化けした原因は、
エディタのエンコード設定を『UTF-8』にする必要があったようです。

また、これ以前のやり取りで『Servletのエンコード』があったので
それもテストしましたところ問題ないようです。

ついでに報告ですが、このままではEclipseで新規クラスファイルを
作成するたびに『MS932』形式のファイルが開かれて、エンコードを
『UTF-8』に変更した際、コメントが文字化けするので、テキスト・
ファイルのデフォルトエンコードを『UTF-8』に変更しました。
既にご存知の方が多いとは思いますが、方法は
『(パッケージエクスプローラーの)プロジェクトを選択』
       ↓
『(右クリックで)プロパティーを選択』
       ↓
『表示されたウィンドウの情報ノードを選択し、テキスト・ファイル
 のデフォルトエンコードを「その他」−「UTF-8」にする』

皆様のご協力で何とかエンコードはうまくいきそうです。
大変有難うございます。

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