重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもお世話になっております。

prototype.jsを用い、ajaxでservletにリクエストしていますが、
servletのjavaがパラメータを受け取ると、日本語が文字化けしてしまいます。

new Ajax.Request('Test', { method: 'post', onSuccess: displayTest, parameters: "param1=" + "あいうえお" });

上記param1をサーバー上で受け取ると以下のようになってしまいます。
縺ゅ>縺?∴縺?

jspは
<%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-31J">

等の設定をしており、文字コードの変換が上手くいっていないと思うのですが、どこの設定を変更すればよいかアドバイスを頂ければと思います。

よろしくお願いします。

A 回答 (1件)

prototype.jsの仕様とかはあまり詳しくないですが、


送信データはあらかじめURLエンコードが必要なんじゃないですか?

new Ajax.Request('Test', { method: 'post', onSuccess: displayTest, parameters: "param1=" + encodeURIComponent("あいうえお") });


それから、JavaScriptは、通常はUTF-8を使用しますので、
HTMLの文字コードではなくUTF-8のままで送信すると思います。
Ajaxに限らずFormでも<a href="">でも、
ブラウザが送信する文字コードは送信元のHTMLの文字コードと一致するという保証はありませんので、
必ず確認、変換しないと行けないと思います。
    • good
    • 0
この回答へのお礼

encodeURIComponent を指定した所、上手く行くことが確認できました。
talooさん大変感謝です。
ありがとうございました。

お礼日時:2009/04/14 11:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!