- PR -

SAXParser charactorメソッドにて文字化け

1
投稿者投稿内容
n.w
大ベテラン
会議室デビュー日: 2003/07/15
投稿数: 126
お住まい・勤務地: 神奈川
投稿日時: 2005-08-29 21:07
度々失礼します。 SAXParserについてですが、
画面からShift_JISで渡されるXML形式文字列をcharactorで値を取得する際
〜 ‖ ~ といった文字が化けてしまいます。

環境としてはstrutsを使用し、ActionFormクラスにresetメソッドをオーバーライドして
request.setCharacterEncoding("Windows-31J");
と文字コードを指定しています

色々試した結果 xmlの宣言句にて指定しているencodingをWindows-31Jとすると文字化けしない
のですが、仕様上行えないため、charactorメソッド内でStringで文字列データを取得した際に
new String(strChr.getBytes("Windows-31J"), "UTF-8");
と変換をかけて変換をかけてみたのですが、〜と‖と ~ は?と化けてしまっています。

これを回避するにはどのようにしたらいいのでしょうか、よろしくお願い致します

コード:
<?xml version="1.0" encoding="Shift_JIS" ?>
<Data1>
	<Data2 name="Test">
		<Data3>
			<Value name="user">ユーザ</Value>
			<Value name="time">2005ー05ー18 20:00:00</Value>
		</Data3>
		<Data3>
			<Value name="hoge">〜, ‖, −, ¢, £, ¬, ~</Value>
		</Data3>
	</Data2>
</Data1>

Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-29 21:09
Shift_JISとWindows-31Jは違うエンコーディングです。
<?xml version="1.0" encoding="Windows-31J" ?>
でトライしてみてください。
n.w
大ベテラン
会議室デビュー日: 2003/07/15
投稿数: 126
お住まい・勤務地: 神奈川
投稿日時: 2005-08-29 21:20
Anthyhimeさん、早い回答ありがとうございます。
Windows-31Jとする方法は試して化けないのですが、
XMLのencodingはWindows-31Jのまま回避する方法は無理でしょうか?

引用:

色々試した結果 xmlの宣言句にて指定しているencodingをWindows-31Jとすると
文字化けしない


1

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