- PR -

strutsで作成した携帯端末向けページがauだけ文字化け

投稿者投稿内容
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2007-12-20 19:38
お世話になります。

strutsを使って以下のようなページを作成し、WAR化してアップロードしました。
これに該当するページを実際のau携帯(WAP2.0)で見てみると文字化けしてしまいます。
同様にして作成したDoCoMo向けやSoftBank向けのページは化けません。

WAP2.0シミュレータであるOpenwaveSDKを使ってこのページを見てみても文字化けせず見ることができるため原因が全くわからず困っています。

WAP2.0ではUTF-8に対応しているはずなので、struts的な書き方に問題があるのではないかとこちらに書き込ませて頂きました。

足りない情報等あれば可能な限り公開させて頂きますのでおっしゃって下さい。
宜しくお願い致します。

コード:

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%
response.setContentType("text/html");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html:html locale="false" xhtml="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>タイトル</title>
</head>
<body>
<html:form action="LoginNext" method="POST">
<div>ユーザID</div>
<div><html:text property="userid" value="" /></div>
<div>パスワード</div>
<div><html:password property="password" /></div>
<html:img page="/img/space.gif" width="1" height="5" />
<div>
<html:img page="/img/s.gif" alt="#" />
<html:submit value="次へ" accesskey="#" />
</div>
</html:form>
</body>
</html:html>



[ メッセージ編集済み 編集者: johnes 編集日時 2007-12-20 19:39 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-12-20 21:05
引用:

johnesさんの書き込み (2007-12-20 19:38) より:
[code]
<%
response.setContentType("text/html");
%>


レスポンスヘッダのContent-Typeにcharsetがないからでは?
<%@ page contentType="text/html; charset=UTF-8" %>
と書いて試してみてはいかかでしょう?

#<%response.setContentType();%>でやっても同じですが、
#JSPには専用のディレクティブも用意されています。
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2007-12-21 09:11
引用:

あしゅさんの書き込み (2007-12-20 21:05) より:
レスポンスヘッダのContent-Typeにcharsetがないからでは?
<%@ page contentType="text/html; charset=UTF-8" %>
と書いて試してみてはいかかでしょう?


なるほど、試してみます!
また結果の方、報告させていただきます。
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2007-12-21 12:05
あしゅさんへ >
試してみましたがダメでした。。。せっかくご教示頂いたのに申し訳ないです。

実は文字化けする場合にはhttpsで接続していまして、httpで接続してみると文字化けせずに表示する事が確認できました。
そこを突っ込んで調べてみたところによると、auではSSL対応している文字コードはShift_JISのみというような記述が公式サイトにありましたのでそちらが原因になるのかと思っています。
SSLで文字化けせずに表示させる手立てとしてはUTF-8でなくShift_JISによるページにするしかないのでしょうか?

#できれば全体をUTF-8に統一したいという考えがありますので。。。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-12-21 15:33
私だったらUTF-8をWindows-31Jに変換する処理をサーブレットフィルタで
作る方法を試してみると思います。
ただ、
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
のcharsetも合わせて書き換える必要があるかもしれませんが、簡単
に書ける処理だと思います。
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-12-21 15:33
回答ではありませんが...

引用:

johnesさんの書き込み (2007-12-21 12:05) より:
そこを突っ込んで調べてみたところによると、auではSSL対応している文字コードはShift_JISのみというような記述が公式サイトにありましたのでそちらが原因になるのかと思っています。


どこに記載されていました?教えていただけると助かります。
http://www.au.kddi.com/ezfactory/tec/spec/ssl.html
では見つけられませんでした。

もしauがShift_JISが使用できないという仕様なら、Shift_JISのページにするしかないと思います。

[修正]リンクが変だったので修正

[ メッセージ編集済み 編集者: KOX 編集日時 2007-12-21 15:34 ]
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-12-21 15:41
http://www.au.kddi.com/ezfactory/tec/spec/4_2.html
これか?
文字化けの可能性は記載されているけど、SSLによる挙動は書かれていませんね。
どうなんだろう。

http://www.au.kddi.com/ezfactory/tec/spec/wap_rule.html
XHTMLならUTF-8でもよいのか。
なんか気持ち悪いですね。
ぱると
会議室デビュー日: 2006/12/21
投稿数: 17
投稿日時: 2007-12-21 15:41
http://www.au.kddi.com/ezfactory/tec/spec/4_2.html

文字コードの指定が無い場合、Shift-JIS以外の文字コードを指定した場合には、コンテンツが正しく表示されない (文字化けする) 場合がありますのご注意ください。

(追記)
かぶった…。

[ メッセージ編集済み 編集者: ぱると 編集日時 2007-12-21 15:42 ]

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