• 締切済み

Apache+TomcatでGET送信すると文字化けする

下記の構成で開発をしています。 Apache2.0.54 j2sdk1.4.2_08 Tomcat5.0.28 JK2 Tomcat単独では、GETで送信した日本語でも取得できましたが、 Apacheを通すと文字化けしてしまいます。 何か良い解決方法等ありましたらお教えください。 【送信】 <form action="test.jsp" method="GET"> <INPUT type="text" name="test" value="てすと" /> <input type="submit" value="submit"> </form> 【受信】 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <% request.setCharacterEncoding("UTF-8"); String sTest = ""; sTest = request.getParameter("test"); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> <title>test</title> </head> <body> <%= sTest %> </body> </html> 【表示結果】 てすと.

  • ix6
  • お礼率0% (0/12)
  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • shin_5696
  • ベストアンサー率39% (21/53)
回答No.1

参考URLのGETメソッド使用時の注意点にあてはまるかと思います。 これは、getで送信した際に、Tomcatがフォームの内容を勝手にURLエンコーディングしてしまうために起こります。server.xmlのConnector要素で、useBodyEncodingForURIをtrueに設定すれば解決するでしょう。

参考URL:
http://www.atmarkit.co.jp/fjava/rensai3/mojibake03/mojibake03.html

関連するQ&A

  • 送信データの受け取りについて

    ご教授願います。 ページ1からMETHOD="get"で値をSubmitして ページ2で受信したいのですが、 ページのURLバーのアドレスの最後に「?ACT=3」と 記載されているにもかかわらず、 ページ2内での$_get['ACT']で 値を拾えませんし、$ACTも確認できません。 どの様な原因が考えられるのでしょうか。 <環境> IE 7.0.5730.13 PHP 5.2.6 <プログラム> *ページ1 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script type="text/javascript"><!-- function Cli_Submit(){ ListForm.action = "Test_submit2.php"; ListForm.submit(); } // --></script> </head> <BODY> <FORM NAME="ListForm" METHOD="get"> <TD><INPUT TYPE="text" NAME="ACT"></TD> <TD><INPUT TYPE="button" VALUE="Submit" onClick="Cli_Submit()"> </FORM></BODY></HTML> *ページ2 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script type="text/javascript"><!-- // --></script> </head> <BODY> <FORM NAME="ListForm" METHOD="post"> <TD><INPUT TYPE="text" NAME="ACT" VALUE="<?php print $_get['ACT'] ?>"></TD> <TD><INPUT TYPE="button" VALUE="Submit" onClick="Cli_Submit()"> </FORM></BODY></HTML>

    • 締切済み
    • PHP
  • 文字化けについて

    文字化けで困っています。 教えてください。 下記のようなコードで、フォームに"猫"と入力すると、 "\0"と戻ってきてしまいます。 このときブラウザのurlにはtest.php?key=%C7%ADとでており、"%C7%AD"をurldecodeでデコードすると、"猫"となります。 ブラウザ内部のデコードがおかしいのかと思ったのですが、Firefox、IE共に"\0"が戻ってきます。 下記コードにまずいところがあるのでしょうか? もしくは、何か対処方法はないでしょうか? よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ecu-jp"> <meta http-equiv="Content-Style-Type" content="text/css"> </head> <body> <form action="test.php" method="get"> <input type="input" name="key" value="<?=$key ?>"> <input type="submit" value="実行"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • Ajaxで文字化けしてしまいます

    IE6を使用しています。 UTF-8のBOMありで以下のコードを保存しています。 sample.txtに入っている「あああ」を出力すると 文字化けしてしまいます。 <script src="prototype.js" type="text/javascript"></script> を <script src="prototype.js" type="text/javascript" charset="utf-8"></script> で試しても同じ結果でした。 何が原因なのでしょうか? <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>prototype.jsサンプル</title> <script src="prototype.js" type="text/javascript"></script> <script type="text/javascript"><!-- function readText() { var sURL = "sample.txt?cache="+(new Date()).getTime(); new Ajax.Updater("result",sURL, { method: "get" }); } // --></script> </head> <body> <h1>prototype.jsサンプル</h1> <form method="get" name="ajaxForm" onsubmit="readText();return false;"> <input type="submit" value="sample.txtを読み込み"><br> </form> <div id="result"></div> </body> </html>

  • 文字化け Win & Apache & ActivePerl

    ウインドウズでApache & ActivePerlの組み合わせで index.htmlを作成して表示させたところ日本語が文字化けしてしまいました。ソースは以下です。何か設定が不足しているのでしょうか?(Apache側とかに) <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>テスト</title> </head> <body bgcolor="#FFFFFF"> <p>テスト<br> ・・・・・

    • ベストアンサー
    • HTML
  • htmlが文字化け

    掲題の件について質問させて頂きます。 linuxサーバ(CentOs5)を立ち上げて、apacheをインストールし、DocRootにhtmlファイルをFFFTPにてアップロードした所、文字化けが発生してしまいました。(画面が真っ白になります) 【環境】 Server: Apache/2.2.6 (Unix) mod_ssl/2.2.6 or_log PHP/5.1.6 【アップロードしたファイル内容】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>ここにタイトルを挿入</title> </head> <body> <form method="post" action="input_check.php" name="input_check"> <input type"text" name="name">お名前: <input type"text" name="furigana">ふりがな: <input type="submit" name="send" value="submit"> </form> </body> </html> ファイルはEUC-JPにて記述しています。 以下試した点をあげてみます。 1. charsetをShift_JISに変更。 ⇒ファイルがEUC_JPで書かれているので当然文字化け。ですが文字化けされた文字は表示されました。(画面が真っ白ではないです。) 2. apacheのhttpd.confのAddDefaultCharsetをコメントアウト ⇒(というよりデフォルトで設定されていませんでした。) 他に何か怪しまれる点はありますでしょうか? 以上宜しくお願い致します。

  • jspの文字化けの解消方法を教えてください

    input.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="result.jsp" method="post"> <input type="text" name="name"> <input type="submit" value="送信" name="submit"> </form> </body> </html> result.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> あなたの名前は<c:out value="${param.name}" />です。 </body> </html> 以上のJSPにおいてinput.jspを実行して表示されるフォームに 日本語を入力するとresult.jspにおいてその出力が文字化けします。 この問題の解消方法を教えてください。

    • ベストアンサー
    • Java
  • eclipse+Struts+Tomcat

    eclipse+Struts+Tomcatという環境で開発を行おうとしています。 環境は以下のとおりです。 Pleiades all in one 3.5 struts 1.3.10 Tomcat 6.0.29 まず手始めに、一番シンプルなフォームに送信ボタンが1つあるだけのものを作ろうとしているのですが、以下のエラーが出て先に進めません。 The server encountered an internal error () that prevented it from fulfilling this request. 書いたソースは下記のとおりです。 <?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>hogehoge</title> </head> <body> <html:form action="/HOGE" method="post"> <html:submit value="送信" /> </html:form> </body> </html> これをhtmlタグを一切使わずに書くと何のエラーもなく表示されます。 eclipseでhtmlタグを使用しない開発は考えられないのですが、今回Javaが初めてで何がどう悪いのかの見当もつきません。 プロジェクト自体は、「動的Webプロジェクト」で作成しています。 どなたかご存知の方はご教示いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 1つのsubmitボタンで2つのCGIを呼び出すことは可能ですか?

    今は、htmlで <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <form action="abc.cgi" method="get"> 以下省略 <input type="submit" value="送信"> </form> <form action="xyz.cgi" method="get"> 以下省略 <input type="submit" value="受信"> </form> </body> </html> という感じで書き、2つのボタンで個々に2つのCGIを呼び出していますが、 これをメールの送受信のように、1つのボタンで2つのCGIを呼び出すことは可能なのでしょうか。 教えてください。お願いいたします。

    • ベストアンサー
    • CGI
  • Tomcat-ApacheでHTMLを表示させると文字化けが……

    Tomcat4.1とApache2を連携してから、HTMLのページを表示させると、 例えば、HTMLのソースコードが <!-- 入力ページ --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>forward アクションを使用する入力ページ</title> </head> <body> <p> ---入力ページ--- </p> <form action="getEntryData.jsp" method="POST"> お名前:<input type="text" name="name" size=32><br> 生年月日:<input type="text" name="birthday" size=20><br><br> <input type="submit" value="OK"> </form> </body> </html> とした場合、ここだと<p>タグで囲んだタイトルの部分と、 お名前、生年月日の部分がISO-8859-1か何か別の文字コードで 表示されてしまいます。 これは、どうすれば正常に表記できるのでしょうか。

    • ベストアンサー
    • HTML
  • PHPをはじめて1日目なので・・・

    参考書を見ながらPHPの勉強を始めていますが、本のサンプルと全く同様にコーディングしているはずなのに、良い結果が得られずバグとなります。 formとpostを使って内容を渡すという項目なのですが。 form.htmlの内容。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form method="post" action="form1.php"> 好きな食べ物は?<input type="text" name="food1"><br> 好きな飲み物は?<input type="text" name="food2"> <input type="submit" value="送信"> </form> </body> </html> form1.phpの内容 <?php header('Content-type: text/html; charset=UTF-8'); ?> <html> <body> <?php $f1 = $_POST['food1']; $f2 = $_POST['food2']; $f1 = htmlentities( $f1, ENT_QUOTES, 'UTF-8' ); $f2 = htmlentities( $f2, ENT_QUOTES, 'UTF-8' ); echo 'あなたは「', $f1, "」が好きなんですね。<br>\n"; echo '「', $f2, "」も好きなんですね。<br>\n"; ?> </body> </html> おそらくちょっとしたことが原因でエラーが出ているのだと思いますが、まだ始めて1日目なので、どこがいけないのかさっぱりわかりません。 一体どこがおかしいのか、教えていただけますか?

    • ベストアンサー
    • PHP

専門家に質問してみよう