- PR -

JSPのエンコード・外字の使用について

1
投稿者投稿内容
ペーぺー01
常連さん
会議室デビュー日: 2005/05/29
投稿数: 45
投稿日時: 2005-06-14 21:26
JSPのエンコーディング指定は「Windows-31J」、ブラウザのエンコード指定は
「Shift_JIS」です。外字(NEC選定特殊文字、NEC選定IBM拡張文字、IBM拡張文字)を した場合問題はありますでしょうか?

<%-- ブラウザエンコード指定 --%>
<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS">@

<%-- JSPパーサエンコード指定 --%>
<%@ page contentType="text/html;charset=Windows-31J" %>A
<%@ page pageEncoding="Windows-31J" %>B

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-15 00:07 ]
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-14 22:18
Sun の Java(JVM含む)を使用しているのであれば

J2SE 1.4.0 以下の場合は含みます
J2SE 1.4.1 以上の場合はエンコーディング(charset名)にWindows-31Jを使用する必要があります。
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-14 22:27
引用:
そのほか問題はあるのでしょうか?



Windows-31Jを使用した場合、Content-Typeが"text/html; charset=Windows-31J"等となり古いブラウザ(携帯の場合は古い端末)でcharsetの値を正常に認識できない場合があります。

その場合対応方法としてはアプリケーションサーバーにWebLogicを使用しているのであれば、設定により対応できると思います。Tomcatを使用している場合は、Tomcatのソースを取得しコネクタのContent-Type設定箇所でContent-Type中にcharset=Windows-31Jがあればcharset=Shift_JISに偽装(変更)するように修正しビルド後、そのコネクタのJARを使用すればよいです。
ペーぺー01
常連さん
会議室デビュー日: 2005/05/29
投稿数: 45
投稿日時: 2005-06-15 00:05
ご返答ありがとうございます。
説明がたりませんでした、以下のように指定しています。

JSPのエンコーディング指定は「Windows-31J」、ブラウザのエンコード指定は
「Shift_JIS」です。外字(NEC選定特殊文字、NEC選定IBM拡張文字、IBM拡張文字)を した場合問題はありますでしょうか?

<%-- ブラウザエンコード指定 --%>
<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS">@

<%-- JSPパーサエンコード指定 --%>
<%@ page contentType="text/html;charset=Windows-31J" %>A
<%@ page pageEncoding="Windows-31J" %>B
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-15 00:20
Tomcat(4.x以上)に限ってはmetaタグで何を書こうがJSPで

引用:
<%@ page contentType="text/html;charset=Windows-31J" %>



としていればHTTPヘッダ中のContent-TypeはJSP冒頭で宣言したようにtext/html;charset=Windows-31Jとなります。

又、ただ漠然と問題がないか?との事ですが、どのような懸念をお持ちでしょうか?
あなたが何をやりたい(望むの)かによって問題か問題でないかが変わると思いますよ
ペーぺー01
常連さん
会議室デビュー日: 2005/05/29
投稿数: 45
投稿日時: 2005-06-15 00:48
お早いご返答ありがとうございます。
お手数をおかけしてしまい申し訳ありません。

外字をブラウザへ出力、さらに送信した場合に、文字化け・文字コードが壊れてしまうことを懸念しています。

ただ単純な1Requestに関してはMs932(ブラウザ)⇒Unicode(WAS)⇒Cp943c(DB2)で問題なさそうと考えています(〜、等UnicodeでMs932、Cp943cのマッピング違いはDB2が対応済みのため)。出力の際のUnicode⇒Shift-JIS、およびブラウザのエンコーデング指定(@の部分)で文字化け・文字コードが壊れてしまわないか心配しています。
(文字コードの知識がなく、Shift−JISそのものがよくわかっていないのです;;)

ご指導よろしくお願いいたしますm(__)m

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-15 01:04 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-15 01:05 ]
未記入
常連さん
会議室デビュー日: 2005/05/24
投稿数: 48
投稿日時: 2005-06-15 10:09
どもども

なるほどーそういうことですか
あまり細かい事考えなくていいようにするのであれば


  • Java 1.4.2以降を使用(可能であればJava 1.4系か5.0系の最新)
  • エンコーディングはWindows-31J
  • クライアント(Webブラウザ)はIE6推奨


がいいかもしれません(詳細な環境が不明なので断言はできませんが)
ホーク
会議室デビュー日: 2005/06/01
投稿数: 3
投稿日時: 2005-06-16 01:35
 WASで使用できるJavaのバージョンはWASのバージョン等に依存しますし、
DB2でCP943Cを無理やりMS932にあわせるのにも特定のバージョンの古いタイプ
のドライバが必要だったりしますので、最初から環境等を明記しておかないと、
有効な回答が得難いですよ。

とりあえず、最新のWASV6.0とDB2V8.2なら以下のURLの資料が参考になるかと。
http://www-6.ibm.com/jp/software/websphere/developer/was/wv6/workshop/pdf/9.pdf
1

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