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

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

0

文字化け

お世話になります。

jsp内のフォームテキストで入力した全角文字を、javascript処理でwindow.openにてGETパラメータにてservletに値を渡す場合に、文字化けしてしまいます。

解決方法を知っている方よろしくお願いします。

環境
Apache2.0.52
Tomcat5.0.28
j2sdk1.4.2.06
eclipse

jspソース-------------------------------------

//入力文字    
var A =document.forms0].a.value;
            
window.open("aaa.do?a=" + A, 500, 100);


servletソース---------------------------------

//受け取っている部分
String a = BeanUtils.getProperty(aForm, "a");


ちなみに、「至急」という文字を入力しこの方法でservletに渡した場合、a=??となります。




12

回答

10186

閲覧

12件の回答

評価

0

つURLエンコード

評価

0

ありがとうございます。

String a = URLEncoder.encode(BeanUtils.getProperty(aForm, "a"),"UTF-8");

としてみたところ、「%3F%3F」と表示されたのですが・・・。"UTF-8"の指定が違うのでしょうか?

評価

0

受け取る時じゃなくて、送り出す時。
例えばGoogleで検索したとき、URL内で入力文字を示すパラメータqは日本語のままじゃないでしょ?

評価

0

すみません…。

javascript側では、具体的にどのように行うのでしょうか?javascriptにURLエンコードの命令があるのですか?

評価

0

ネット上で、javascriptで作成したencodeURLのソースを発見したので、それを使用してみました。
わたす方はちゃんと変換され、「%e8%87%b3%e6%80%e5」となっていましたが、受け取り側のservlet側は…相変わらず「????」です。

評価

0

では、受け取る側ではURL「デコード」しないと。
文字コードは指定されてる?

評価

0

servlet側ではデコードしております。

URLDecoder.decode(BeanUtils.getProperty(aForm, "a"),"UTF-8");

書き方が間違っているのでしょうか?
結果は変わらず「????」です。

評価

0

request.getParameter()にあたる部分がどうなっているかということなんだけど…。

評価

0

現在、eclipseで開発しているのでBeanUtils.getPropertyを使用していますが、request.getParameter("a")でも同じことです。

ちなみに、
URLDecoder.decode(request.getParameter("a"),"UTF-8");
でも、同じ結果でした。

検討違いの事を言っていたらすみません。

評価

0

いっそ、そこじゃなくて
jspのcharsetが違っているとかないですか?

評価

0

ありがとうございます。

jspのchersetはこのように記述しております。
今まで、他の日本語の文字化けはおきたことがないので大丈夫かと思いますが…どぉでしょうか?

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

評価

0

JSPのファイル自体の文字コードは?

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