Tomcat-ApacheでHTMLを表示させると文字化けが……

このQ&Aのポイント
  • Tomcat4.1とApache2を連携してから、HTMLのページを表示させると文字化けが発生します。
  • HTMLのソースコードを表示する際、タイトルと入力フォームの一部が文字化けして表示されます。
  • 文字化けを解消するためには、正しい文字エンコーディングを指定する必要があります。
回答を見る
  • ベストアンサー

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
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • Exkyde
  • ベストアンサー率58% (7/12)
回答No.3

そうでしたか。 ところで、環境変更(Tomcat-Apache2連携)以前の環境はどのようなものだったのでしょうか。 Apache側で.htaccessに AddType "text/html; charset=Shift_JIS" html と書いて見るのはどうでしょうか。 ただ、.htaccess編集なので、そのサーバ内のhtml文書全体がこの文字コードに従うという制約がかかると思いますが・・・

persona
質問者

お礼

できました。 恐らくhtaccessは、Apache2のhtdocsを表しているんだ、と思って、 そこのAddcharsetが羅列されている部分に、 Addcharset Shift_JIS .html と付け足してみたらちゃんとした表示がされました。 いやはや、HTMLファイルが使えないと知ってからメチャクチャ困ったんで、ほんと助かりました。 ポイントという形ですが、お礼と変えさせていただきます。

その他の回答 (2)

  • Exkyde
  • ベストアンサー率58% (7/12)
回答No.2

補足ですが、METAタグはhead要素内(<head>~</head>の間)に入れてください

persona
質問者

お礼

今更ではありますが、最近になって回答者にお礼をしない事がどれだけ失礼な事かを感じまして書く次第であります。 今見ると3度もレスを頂いているのですね。 まさに感謝の念に絶えません。 Exkydeさんの助言があったからこそ、できたと思っております。 本当にありがとうございました。

  • Exkyde
  • ベストアンサー率58% (7/12)
回答No.1

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> などのようにMETAタグで仕様文字コードセットを宣言せいて見てはいかがでしょうか? 読むとわかると思いますがサンプルはEUCの物で、宣言はcharset="EUC-JP"と言うところで行っています。 ここに適当な文字コードを当ててください。 頑張ってくださいね^^

persona
質問者

お礼

今更ではありますが、最近になって回答者にお礼をしない事がどれだけ失礼な事かを感じまして書く次第であります。 補足だけしといて、肝心なお礼の言葉をしていませんでした。 随分昔の事で、大変申し訳ありませんとしか言えませんが、貴重なアドバイスを頂き、感謝しています。

persona
質問者

補足

違うのです。 確かに、質問にメタデータを入れてなかったのは自分のミスですが、 例えば <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> と入れても言語コードが変わらないのです>どういうわけか??? それで、開いた文字化けページで『エンコード』ってのを右クリックで 選択してみるとISOコードのままになっていて、それを日本語のコードに選択しなおせば、 ちゃんとした日本語表記されるのです。 試しに、メタデータの最後に、 pageEncoding="Shift_JIS"と入れても、駄目でした。 他に何か手立ては無いでしょうか。

関連するQ&A

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>入力ページ</title> </head> <body> <p>-- 入力ページ --</p> <p><form action="test2.jsp"> ID: <input type="text" name="uid" size10><br> お名前: <input type="text" name="name" size=32><br> 生年月日: <input type="text" name="money" size=20><br> <br> <input type="submit" value="OK"> </form></p> </body> </html> ------------------------------------------------------- test2.jsp <%@ page contentType="text/html; charset=euc-jp" %> <% // ユーザーからの入力を出力する // パラメータを取得 String uid = request.getParameter("uid"); String name = request.getParameter("name"); String money = request.getParameter("money"); // 文字コードの変換 //uid = new String(uid.getBytes("8859_1"), "EUC_JP"); name = new String(name.getBytes("8859_1"), "EUC_JP"); money = new String(money.getBytes("8859_1"), "EUC_JP"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>ユーザーからの入力を出力する</title></head> <body> <p>-- ユーザーからの入力を出力する --</p> <p><ul> <li>ID: <%= uid %> <li>お名前: <%= name %> <li>生年月日: <%= money %> </ul></p> </body> </html> htmlの入力フォームからjspを呼んで表示させるだけなのですが、入力して「OK」をおすと You don't have permission to access /~.........../test2.jsp on this server. と出るのですが、何が原因なのでしょう。教えてください。

  • 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> 【表示結果】 てすと.

  • HTMLでテキスト入力し表示させる

    HTMLでテキストボックスに文字を入力し、表示させたいのですがうまくできません。 見た目はできているようなのですが、文字が表示されない状態です。 コードを記載しますので、お手数をお掛けしますがご教授頂けますでしょうか。 <html> <head> <script> function add(){ document.getElementById("target").innerText = document.getElementById("name").value; target = document.getElementById("output"); document.write(target); } </script> </head> <body> <p>名前を入力してください</p> <input id="name" name="name" type="text" size="30" onkeydown="update_field();"> <br> <input type="button" onclick="add()" value="実行"> <form action="index.html" method="post"> <br> <input type="submit" name="exit" value="戻る"> </form> </body> </html>

  • 確認ページが表示できない

    以下にフォームと確認ページ(CGI)があります。確認ページを表示すると「window.opener.documentはnullまたはオブジェクトではありません」という表示がでます。どこが問題でしょうか (フォーム) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>フォーム</title> </head> <body> <form name="user" action="kakunin.cgi" method="post"> <p>メール  <input name="mail" type="text" value="" size="30">                      <input type="submit"" value="確認"> <input type="reset"" value="リセット"> </form> </td> <td width="148">&nbsp;</td> </tr> </table> </body> </html> ーーーー 確認ページ #! /usr/bin/perl print<<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title>確認</title> <script language="JavaScript1.1" type="text/javascript"><!-- var win; function fun(){ win=window.opener.document.all.user.mail.value; window.document.kuser.kmail.value=win; window.opener.close(); } //--> </script> </head> <body onLoad="fun();"> <form name="kuser"> <input TYPE="text" NAME="kmail" value =""> <p> <input name="button" type="submit" value="送信"> </p></form> </body> </html> END

    • ベストアンサー
    • CGI
  • 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
  • 文字化けについて

    文字化けで困っています。 教えてください。 下記のようなコードで、フォームに"猫"と入力すると、 "\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
  • 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をコメントアウト ⇒(というよりデフォルトで設定されていませんでした。) 他に何か怪しまれる点はありますでしょうか? 以上宜しくお願い致します。

  • フォームの表示が消えてしまう・・・

    初歩的なことでつまづいております。 フォームを利用して「入力」フォームに文字を入れ、「入力!」ボタンを押すと「結果」フォームにその文字を表示させたいのですがうまくいきません。 やりたいことは、 1.「入力」フォームに文字を入れます(たとえば"123") 2.「入力!」ボタンを押します 3.すると「結果」フォームに"123"と表示させたいです  4.また、「入力」フォームにはそのまま"123"が表示されたままにしたいです なぜか下記の記述だとボタンを押した瞬間にすべてのフォームの文字表示が消えてしまいます。 これはどうしてなのでしょうか?すみませんがよろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"><!-- function calcButton() { var inputValue = document.calc.input.value; document.calc.result.value = inputValue; } //--></SCRIPT> </HEAD> <BODY> <FORM name="calc" action=""> 入力<INPUT type="text" size="5" name="input"><BR> 結果<INPUT type="text" size="5" name="result"><BR> <INPUT type="submit" value="入力!" onClick="calcButton()"> </FORM> </BODY></HTML>

  • テキストを表示すると文字化けする

    まず、HTMLから !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=windows-31j"> <title>メール送信フォーム</title> </head> <body> <h2>メール送信フォーム</h2> <form action="conf.jsp" method="POST"> <table summary="" border="0"> <tr> <td>お名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td>メールタイトル</td> <td><input type="text" name="title" size="20"></td> </tr> <tr> <td>メッセージ</td> <td><textarea rows="5" name="message" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" value="内容の確認"></td> </tr> </table> </form> </body> </html> それを受けるconf.jspで文字化けします。 が、1つ文字化けせずに表示する方法があります。 <%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <!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=Shift_JIS"> <title>メール送信フォーム</title> </head> <body> <h2>メール送信内容確認画面</h2> <% request.setCharacterEncoding("Shift-JIS"); ↑ここですね↑見にくくてすいません。 ここでShift_JISに変換されてちゃんと表示されます。 でも、これは後から付け加えたものでソースコードには最初ありませんでした。 //フォームの値を取得 String mName = request.getParameter("name"); String mFrom = request.getParameter("from"); String mTitle = request.getParameter("title"); String mNaiyou = request.getParameter("message"); //値をチェック boolean errFlg = false; if (mName.equals(" ")) { out.println("<p>お名前を入力して下さい。"); errFlg = true; } if (mFrom.equals(" ")) { out.println("<p>メールアドレスを入力して下さい。"); errFlg = true; } if (mTitle.equals(" ")) { out.println("<p>タイトルを入力して下さい。"); errFlg = true; } if (mNaiyou.equals(" ")) { out.println("<p>内容を入力して下さい。"); errFlg = true; } if (errFlg == false) { %> <h2>内容を確認して送信ボタンをクリックして下さい</h2> <form action="sendMail.jsp" method="POST"> <table border="0"> <tr> <td width="100">お名前</td> <td width="300"><%= mName %></td> </tr> <tr> <td width="100">メールアドレス</td> <td width="300"><%= mFrom %></td> </tr> <tr> <td width="100">メールタイトル</td> <td width="300"><%= mTitle %></td> </tr> <tr> <td width="100">メッセージ</td> <td width="300"><%= mNaiyou %></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> <input type="hidden" name="name" value="<%= mName %>"> <input type="hidden" name="from" value="<%= mFrom %>"> <input type="hidden" name="title" value="<%= mTitle %>"> <input type="hidden" name="message" value="<%= mNaiyou %>"> </form> <% }%> </body> </html> 何故、文字化け状態になるのでしょう。 アドバイス宜しくお願い致します。

  • 変数を渡して新しいウィンドウで表示させるには

    http://iskiso3.hustle.ne.jp/i.php 上のページのように最初のページで入力してもらった変数を次のページにPOSTで渡すことは出来るのですがこのときに新たなウィンドウで結果を表示させるにはどのようにスクリプトを書き換えたらよいのでしょうか? JAVAを使えば出来るということまではわかり試行錯誤してみたのですが変数が渡されなかったり問題がおきてしまいました。 一応上記のページのスクリプトは 最初のページが ------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> </head> <body> <form action="o.php" method="post"> メッセージを入力してください。<br> <input type="text" name="mes" size="30"> <input type="submit" value="送信"> </form> </body> </html> ------------------------------------- で、2番目のページが ------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> </head> <body> <?php $mes = $_POST['mes']; echo "$mes"; ?> </body> </html> ------------------------------------- というようになっています。 ご教授よろしくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう