- PR -

GETメソッド時のURLエンコードができません。

投稿者投稿内容
takion
会議室デビュー日: 2007/05/10
投稿数: 9
お住まい・勤務地: 大阪府
投稿日時: 2007-05-10 17:51
「基礎からのサーブレット/JSP(宮本信二)」を用いて勉強しているのですが、
どうしてもGETメソッド時の日本語が文字化けしてしまいます。

本にはTomcatの/conf/server.xmlにuseBodyEncodingForURI="true"を下記のように設定すれば文字化けが解消するとありましたがダメでした。

ソースを載せておきますので、
どうかアドバイスをお願い致します。

【server.xml(一部抜粋)】
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
useBodyEncordingForURI="true" />

【EchoServlet.java】

package input;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class EchoServlet extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{

request.setCharacterEncoding("Windows-31J");

String msg = request.getParameter("message");

response.setContentType("text/plain; charset=Windows-31J");

PrintWriter out = response.getWriter();
out.println("message=" + msg);
}
}

【echo.jsp】
<%@ page contentType="text/html; charset=Windows-31J" %>

<HTML>
<HEAD>
<TITLE>エコー</TITLE>
</HEAD>
<BODY>
<H2>EchoServletの入力</H2>
<FORM action="../EchoServlet">
<input type="text" name="message">
<input type="submit" value="GET送信">
</FORM>
</BODY>
</HTML>

【web.xml】
<?xml version="1.0" encoding="Windows-31J"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>

  <servlet>
<servlet-name>EchoServlet</servlet-name>
<servlet-class>input.EchoServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>EchoServlet</servlet-name>
<url-pattern>/EchoServlet</url-pattern>
</servlet-mapping>
</web-app>
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-05-10 20:58
ブラウザの設定でエンコーディング変更してなにになってるか見ましたか??
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-05-10 20:58
ブラウザの設定でエンコーディング変更してなにになってるか見ましたか??
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-05-10 20:58
ブラウザの設定でエンコーディング変更してなにになってるか見ましたか??
takion
会議室デビュー日: 2007/05/10
投稿数: 9
お住まい・勤務地: 大阪府
投稿日時: 2007-05-11 09:41
日本語(Shift_JIS)になっていました。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2007-05-11 10:02
TomcatはGETのパラメータ部のエンコードの取り扱いがバージョンによって違いますが、
バージョンは何ですか?
takion
会議室デビュー日: 2007/05/10
投稿数: 9
お住まい・勤務地: 大阪府
投稿日時: 2007-05-11 10:04
Tomcatのバージョンは5.5.20です。
すいませんが、宜しくお願い致します。
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-05-11 10:08
http://search.msn.co.jp/results.aspx?q=setCharacterEncoding&form=QBNO&custom=1&checkcustom=1

たぶんここらの現象と同じ

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