Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

UnsupportedEncodingExceptionについて

こんにちは。WinXP SP1、tomcat6.0.13、デスクトップPCです。
(いつも同じ書き出しで恐縮です)
宣言部に以下のメソッドを書くとUnsupportedEncodingExceptionになってしまいます。
<%!
synchronized private String    outPiece(String value) {
 byte[]    p = value.getBytes("8859_1");
 return    (new String(p, 0, p.length, "UTF-8"));
}
%>
スクリプトレット内に書くと動くことは分かっているのですが、もしかしてsp1の不具合ではないかと思っているのですが、ご存知の方はいらっしゃいませんか?
因みに、時代的に良くないとされている書き方であることは承知しています。
よろしくお願いいたします。

7

回答

82245

閲覧

7件の回答

評価

0

ちら見で答えますが。ISO-8859-1は?

評価

0

$さん、ありがとうございます。
昔は確かに「ISO-8859-1」と書いていたのですが、今は
 「8859_1」と書いていて、
スクリプトレット内では特に問題はありません。
(違うことを応えていますか?)

評価

0

$さん、「ISO-8859-1」と書いても同じです。
UnsupportedEncodingExceptionですね。

評価

0

その例外のメッセージ、全部ここにコピペしてみたら?
なんだかオチが読めそうだけど。

評価

0

zxcvさん、時間がなかったので、全く別のやり方で決着をつけてしまって、次に進んでいます。
tomcatのログも一旦整理してしまいました。
せっかく書いていただいたのに申し訳ない。
なんとなく勘所がおありですか? よろしければ「こうではないか?」ということでも掲載していただければありがたいですが。
よろしくお願いいたします。

評価

0

それを聞きたいなら、まず先に自分がどう解決したのかを書くべきではないの。

評価

0

$さん、仰るとおりなのですが、最終、jspとはかけ離れたところでの解決にしてしまったので(Javaですらありません)、書きにくいものがありますが、最終の直前版を書いて見ます(OKになっているものです)。

<jsp:useBean id="beanid" class="beans.XXXBean" scope="session" />

<%
byte[] p    = request.getParameter("element1").getBytes("8859_1");
beanid.setElement1(Integer.parseInt(new String(p, 0, p.length, "UTF-8")));
p = request.getParameter("element2").getBytes("8859_1");
beanid.setElement2(new String(p, 0, p.length, "UTF-8"));
(以下、項目の最後まで同じ要領で)

ということで、スクリプトレットでゴリゴリ書くという方法です。
あまりにあまりの方法なので、最初、メソッドに書いてみたのですが、今回の質問のように駄目だったというところです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。