Interstage Application Server/Interstage Web Server トラブルシューティング集 |
目次
索引
![]() ![]() |
第8章 J2EEアプリケーション開発・運用時の異常 |
文字化けの対処方法、および文字化けに影響するコード変換の設定について説明します。
文字化けが発生した場合、原因を追求するために文字化けが起きた状況を確認します。
Servletサービスの運用で文字化けが発生した場合のチェックポイントを以下に示します。
注) “Webアプリケーションのエンコーディング”は、Interstage管理コンソールの以下の項目で設定します。
JavaVM、javac、native2asciiなどのツールは、ロケールの設定に基づいて動作します。Servletサービスでも同様にロケールの設定に基づいて動作します。ロケールの設定方法について説明します。
【ロケール】
ロケール(Locale)とは、共有する言語や文化に依存するさまざまな属性をひとまとめにして定義しています。
コード系 |
ロケール |
---|---|
EUC |
Ja |
シフトJIS |
ja_JP.PCK |
UTF-8 |
ja_JP.UTF-8 |
WebアプリケーションのサーブレットはJava言語で作成するため、内部で処理する日本語コード系はUNICODEです。そこで、Webブラウザから入力された日本語文字はUNICODEへ、Webブラウザへ表示する文字はUNICODEから日本語のコードに変換する必要があります。
JSPもJavaファイルに変換され実行されるので、コード変換の設定が必要となります。
コード変換の設定方法を説明します。
[HTMLのコード系]
“charset”を設定します。
記述例(Shift_JIS)
-------------------------------------------------------------------------------
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
-------------------------------------------------------------------------------
[入力コード系]
ブラウザからの受信時にコンバータを使用し、文字変換を行います。
記述例(SJIS→Unicode)
-------------------------------------------------------------------------------
request.setCharacterEncoding("SJIS");
String in_value1 = request.getParameter("param1");
-------------------------------------------------------------------------------
Interstage管理コンソールで“Webアプリケーションのエンコーディング”項目を指定している場合は、コード変換を行う必要はありません。
[出力コード系]
処理結果をWebブラウザに返す時、文字変換を行うためにコンバータ指定します。
記述例(Unicode→SJIS)
-------------------------------------------------------------------------------
request.setContentType("text/html; charset=SJIS");
PrintWriter out = response.getWriter();
-------------------------------------------------------------------------------
setContentType() はgetWriter() を取得する前に呼び出す必要があります。
記述例
-------------------------------------------------------------------------------
<%@ page session="false" contentType="text/html; charset=SJIS" %>
<%
response.setContentType("text/html; charset=EUC_JP");
%>
<HTML>
<TITLE>日本語テスト(EUC_JP 出力)</TITLE>
<BODY BGCOLOR="black" TEXT="yellow">
<H1>日本語テスト(EUC_JP 出力)<BR></H1>
-------------------------------------------------------------------------------
以下に、文字化け特殊文字の対応表を掲載します。
JIS X 0208
Unicodeへの変換
33 ('〜')
EUC:a1c1
Solaris上での変換:
U+301c (WAVE DASH)SJIS:8160
Windows(R)上での変換:
U+ff5e (FULLWIDTH TILDE)01-34 ('‖')
EUC:a1c2
Solaris上での変換:
U+2016 (DOUBLE VERTICAL LINE)SJIS:8161
Windows(R)上での変換:
U+2225 (PARALLEL TO)01-61 ('−')
EUC:a1dd
Solaris上での変換:
U+2212 (MINUS SIGN)SJIS:817c
Windows(R)上での変換:
U+ff0d (FULLWIDTH HYPHEN-MINUS)01-81 ('¢')
EUC:a1f1
Solaris上での変換:
U+00a2 (CENT SIGN)SJIS:8191
Windows(R)上での変換:
U+ffe0 (FULLWIDTH CENT SIGN)01-82 ('£')
EUC:a1f2
Solaris上での変換:
U+00a3 (POUND SIGN)SJIS:8192
Windows(R)上での変換:
U+ffe1 (FULLWIDTH POUND SIGN)02-44 ('¬')
EUC:a2cc
Solaris上での変換:
U+00ac (NOT SIGN)SJIS:81ca
Windows(R)上での変換:
U+ffe2 (FULLWIDTH NOT SIGN)
目次
索引
![]() ![]() |