• ベストアンサー

JSPでの文字化け

こんにちは。 今JAVAを勉強中でJSPファイルを作成しています。 test.jsp <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> <HTML> <HEAD><TITLE>文字表示テスト</TITLE></HEAD> <BODY> <% String text = request.getParameter("text"); if (text != null) { if (!text.equals("")) { out.println("画面からの文字<BR>"); out.println(text); } } %> <FORM NAME="testForm" METHOD="post" ACTION="test.jsp"> <TEXTAREA NAME="text"></TEXTAREA> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> Windowsで上のプログラムを実行すると問題なく表示されますが Linuxサーバで実行すると???となってしまいます。

  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1
hym789
質問者

お礼

回答ありがとうございます。 test.jspの <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> を <%@ page language="java" contentType="text/html; charset=EUC_JP" pageEncoding="EUC_JP"%> と書き換え、EUCで保存し直して実行したところ日本語表示が出来ました! ところでまるいちやローマ英数字は機種依存文字ということらしいのですが、 Linuxで表示する事は不可能なのでしょうか? 今はLinuxにjspファイルを置いてWindowsで確認するといった方法で実行しています。

その他の回答 (1)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

>ところでまるいちやローマ英数字は機種依存文字ということらしいのですが、 >Linuxで表示する事は不可能なのでしょうか? 適切な文字コードとフォントを使えばLinuxでも問題なく表示できます。添付の画像を見てください。

hym789
質問者

お礼

回答ありがとうございます。 Linuxでも表示できるのですね。 まだまだ勉強不足です・・・ 画面まで添付して頂いてありがとうございました。

関連するQ&A

  • 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
  • JSPで、PG上のstrutsオブジェクトについて

    動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 JavaPGで、out.println関数を使用して、strutsのオブジェクト書いてもブラウザ上で出力されません。 直接strutsタグで、書くとブラウザ上に正常に表示されます。 Java側で、対応されていないのでしょうか? どなたか、ご指導願います。 ■事象例 1.「a.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <% String strtest = "#{'1':'1','2':'2'}"; out.println("<s:select name=\"cbotest\" list=\"#{'1':'1','2':'2'}\"/>"); %> </s:form> </body> </html> 2.「b.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <s:select name="cbotest" list="#{'1':'1','2':'2'}"/> </s:form> </body> </html> 3.IE8上の表示(画像添付参照) 1.「a.jsp」結果 何も出力されません。 2.「b.jsp」結果 [1[▼]] [1■■] [2   ]

    • ベストアンサー
    • Java
  • ServletからJSP

    はじめまして。 お世話になります。 以下のようにサーブレットから条件によってJSPファイルを 使い分けようと思っているのですが、うまく出来ません。   protected void processRequest(HttpServletRequest request, HttpServletResponse response)   throws ServletException, java.io.IOException   {     PrintWriter out = response.getWriter();     out.println("<html>");     out.println("<head>");     out.println("<title>タイトル</title>");     out.println("</head>");     out.println("<body>");     RequestDispatcher rd = null;     if(/* 条件1 */)     {       rd = request.getRequestDispatcher("hoge1.jsp");     }     else if(/* 条件2 */)     {       rd = request.getRequestDispatcher("hoge2.jsp");     }     else     {       rd = request.getRequestDispatcher("hoge3.jsp");     }     out.println("</body>");     out.println("</html>");     if(rd != null)     {       rd.include(request,response);     }   } このようにすると <html> ・ ・ サーブレットから出力した部分 ・ </html> <****> JSPで出力した部分 </****> とサーブレットの部分だけ先に出力されてしまいます。 JSPファイルの前後に出力させるにはどのようにすればよいのでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • jspから別のjspへパラメータが送信できない

    javaBeanを利用してjspを作成したけど Test.jspのソース <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="struts.*" %> <jsp:useBean id="formprocess" class= "struts.FormProcess" scope="application" /> <jsp:setProperty name="formprocess" property="*"/> <html> <head> <title>TEST</title> </head> <h2>情報の入力</h2> <form method="GET" action="/javaroad/jspdir/Test_1.jsp"> <p> 名前: <input type="text" name="name" size=30> <p> メールアドレス: <input type="text" name="mailaddress" size=30> <p> <input type="submit" value="送信"> </form> </center> </body> </html> Test_1.jspのソース <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page import="struts.*" %> <jsp:useBean id="formprocess" class= "struts.FormProcess" scope="application" /> <html> <head> <title>TEST</title> </head> <body> <p> 名前: <jsp:getProperty name="formprocess" property="name"/> <p> メールアドレス: <jsp:getProperty name="formprocess" property="mailaddress"/> </body> </html> Beanのソース package struts; public class FormProcess { String name; String mailaddress; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setMailaddress(String mailaddress) { this.mailaddress = mailaddress; } public String getMailaddress() { return mailaddress; } } Test.jspでデータを入力して送信ボタンを押すとTest_1.jspではnullが表示します。前の入力したデータではないです。どうしたらできますか?

    • ベストアンサー
    • Java
  • テキストを表示すると文字化けする

    まず、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> 何故、文字化け状態になるのでしょう。 アドバイス宜しくお願い致します。

  • Netscapeだと文字化け!

    まずは下記のHTMLをご覧下さい。 <html> <head> <title>tes</title> </head> <SCRIPT LANGUAGE=JAVAScript> <!-- function cp_text( ) { document.fr_test.right.value = document.fr_test.left.value ; } function cp_text1( ) { document.fr_test.right.value = escape(document.fr_test.left.value) ; } function cp_text2( ) { var n = unescape(document.fr_test.right.value) ; document.fr_test.right.value = n; } //--> </SCRIPT> <body> <form name="fr_test"> テキスト1 <input type="text" name="left" size="10" maxlength="10"><BR> テキスト2 <input type="text" name="right" size="10" maxlength="10"><BR><BR> <input type="button" name="btn_tes" value="コピー開始" onclick="cp_text()"><BR> <input type="button" name="btn_bin" value="テキスト2をHEX変換" onclick="cp_text1()"> <input type="button" name="btn_bin" value="テキスト2をDEC変換" onclick="cp_text2()"> </form> </body> </html> ------------------------------------------------ 以上のように記述されたHTMLがあります。 これをNetscapeで起動させるとテキストボックスが2つ表示されます。 ここで「テキスト1」の方に(1)、(2)みたいなコード(ローマ字でしょうか?) これを入力させて下にある「コピー開始」ボタンを押すと テキスト2の方へ値がコピーされてしまうのですが、 ローマ字文字が文字化けしてしまいます。 これをIEで起動すると文字化けはおきないのですが。 これをNetscape上で文字化けを起こさずにコピーすることは できないのでしょうか?

    • ベストアンサー
    • HTML
  • 送信フォームからjspページに値を飛ばしたい

    jspページでhtml,javaScriptを用いてフォームの入力制限を行い、FMenu.jspという、jspページにフォームの値を送信したいのですが、うまくいきません。どなたか教えてください。 Form.jspファイル(中略) <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>フォーム入力画面</title></head> <body><center> <script type="text/javascript"> <!-- function checkForm(){ var a,b; NCheck(); if(a==true){ WCount(); } ACheck(); if(b==true){ WCount(); document.FM[0].submit(); document.FM[1].submit(); } } (中略) //--></script> <form action="Menu.jsp" method="POST" name="FM"> ID<input type="text" name="ID" size="20" maxlength="4"><br> パスワード<input type="text" name="PASS" size="20" maxlength="4"> <input type="button" value="OK" onClick="return checkForm();"> (中略)

  • ServletでのFRAMESETについて教えて下さい。

    Servletにて以下は1部ですがつくりましたが、コンパイルでFRAMESETの部分がエラーとなります。 FRAMESETは使えないのでしょうか?? 初歩的な質問で申し訳ありませんが教えて下さい。 お願いいたします。 out.println("<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">"); out.println("<%@page contentType="text/html; charset=Windows-31J"%>"); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>テストWEB</TITLE>"); out.println("</HEAD>"); out.println("<FRAMESET rows="100,*" border="0" frameborder="0">"); out.println("<FRAME src="title.jsp" name="title" scrolling="no">"); out.println("<FRAMESET cols="50%,*" border="0" frameborder="0">"); out.println("<FRAME src="left.jsp" name="left">"); out.println("<FRAME src="right.jsp" name="right">"); out.println("</FRAMESET>"); out.println("<noframes>"); out.println("<h2>このページはフレーム対応のブラウザでご覧ください。</h2>"); out.println("</noframes>"); out.println("</FRAMESET>"); out.println("</HTML>");

    • ベストアンサー
    • Java
  • Javascriptで複数のテキストエリアの文字列を連結させたいです

    Javascriptで複数のテキストエリアの文字列を連結させたいです。 初めまして、 お世話になります。 ------------------------------------------------- <html> <head> <title>無題ドキュメント</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="form1" method="post" action=""> いつ<br> <textarea name="when"></textarea> <br> <br> どこで<br> <textarea name="where"></textarea> <br> <br> だれが<br> <textarea name="who"></textarea> <br> <br> どうした<br> <textarea name="what"></textarea> <br> <input type="submit" name="submit" value="連結"> <input type="reset" name="submit" value="リセット"> <br> <br> いつどこでだれががどうした。<br> <textarea name="textfield"></textarea> </form> </body> </html> ------------------------------------------------- というHTMLがあったとして ボタンを押したら文字列を連結させたいのです。 その際、入力したテキストフィールドで文字列が改行をされてあった場合 それをそのまま反映して表示させたいのです。 ぜひよろしくお願いします。

  • submitで日本語をおくりたい

    自分は現在JSPの勉強をしているのですが、JSPからサーブレットにsubmitをつかって、日本語を送信した場合文字化けして表示されてしまうので困っています。 ソースコードで説明させていただくと JSP側ソース <%@ page contentType="text/html;charset=Shift_JIS" pageEncoding="Shift_JIS" %> <html> <head><title>a</title></head> <body> <form action="Hello" method="post"> <textarea rows="10" cols="40" name="comment"> ここにコメントを書いて送信を押すとコメントがつきます </textarea><br> <input type="submit" value="送信"> </form> </body> </html> サーブレット側 import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class hello extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); response.setCharacterEncoding("Shift_JIS"); PrintWriter out = response.getWriter(); String msg = request.getParameter("comment"); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println(msg);//ここで表示 out.println("</body>"); out.println("</html>"); } } この様なソースを書いたのですが、サーブレット側で日本語を表示させようとすると、文字化けしてしまいます(英語は普通に表示されます)。 どのようにすれば、サーブレット側で日本語を表示できるのでしょうか? お返事おまちしております。

    • ベストアンサー
    • Java

専門家に質問してみよう