• 締切済み

jspの文字化けについて

こんばんは。 今日、入力フォームに入れた情報をMysqlに格納するjspを作りました。ボタンを押すとSQLに入るのですが、ここでSQL側で中身を 見てみると文字化けしています。 これを改善する方法をご存知の方ご教授いただけませんでしょうか? また、jspのほうの送信データの文字コードを変更する方法につきましてもご存知の方いらっしゃいましたら アドバイスをお願いいたします。 今はWindows-31Jです。

  • sky12
  • お礼率38% (17/44)
  • Java
  • 回答数5
  • ありがとう数4

みんなの回答

回答No.5

間にBeanとか使っていませんか?(ソースがないので、当てずっぽですが。) とりあえずは、お勧め過去ログを、と。 「Bean→JSPでの文字化け」 http://oshiete1.goo.ne.jp/qa267793.html 「UTF-8で書かれたJSPの日本語文字コード変換の正しい方法がわかりません」 http://oshiete1.goo.ne.jp/qa2909221.html

参考URL:
http://www.itmedia.co.jp/developer/java/jspprog/02/02.html
  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.4

>JSPでゲットパラメータした >時点で文字化けしています。 でしたら、>>ANo.3の文字コード宣言。 tomcat5.x以降を利用の場合はserver.xmlの確認。 この2点で解決する。 だめでしたら、何らかのミスがあるはずなので、JSPのソースコード。及び動作環境を提示してみてはどうでしょうか。

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.3

確認したいのですが、 ・JSPがパラメータを受けた時点で文字化けしている? ・MySQLに保存した時に、MySQL内で文字化けする? どっちでしょうか。 >このときはJSP側もしくはゲットパラメータのところで >どのような処置を >施せばよろしいのでしょうか? JSPではパラメータを受ける時というか、ページの宣言にどの文字コードか指定する必要があります。 宣言の方法は、ANo.1で提示したURLに載ってます。 GETパラメータってことですので、tomcat5.x以降でしたら http://www.javaroad.jp/servletjsp/sj_servlet13.htm にあるように、server.xmlの設定がいるかもしれませんね。

sky12
質問者

補足

JSPでゲットパラメータした 時点で文字化けしています。

noname#94983
noname#94983
回答No.2

データベースはSJISで作ってあるわけだね? で、JSP側ももちろんSJISになっている? このへんは基本中の基本だからまず再確認。 文字化けの原因はあまりにたくさんあるんで、なんともいえないんだが。例えば、接続の際に明示的にSJISを指定してアクセスするとか。 Connection users = DriverManager.getConnection( "jdbc:mysql://localhost/データベース?characterEncoding=SJIS", "root","hoge"); たとえばこんな具合に、接続先の指定に?characterEncoding=SJISをつけて明示的に文字コードを指定してみる、とかね。 ダメだったら、MySQLはバージョンによっていろいろ設定も微妙に違ったりするから、そのへんの情報も更に書いたほうが回答しやすいだろう。

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.1

「jsp 文字コード」で検索 http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html このあたりとかどうでしょうか。 たぶん、JSPとMySqlの文字コードが一致していない。 MySqlの設定も見てみましょう。 両方を同じ文字コードを使う方が、文字コードの変換とか不要なので楽です。 (プログラム側の文字コード宣言とかの最低限のコードは必要ですが)

sky12
質問者

補足

ありがとうございます。 ちょっと質問内容を補足いたします。 JSPで全角文字(日本語)を 入れたときにボタンを押すと、Mysqlに入るのですが そちらでは????となってしまい上手く表示できません。 Mysqlの文字コードはシフトジスで統一してあり動かせないのです。 このときはJSP側もしくはゲットパラメータのところで どのような処置を 施せばよろしいのでしょうか? 重ね重ね申し訳ありません。

関連するQ&A

  • jspで文字化け

    jspでホームページのフォーム上で入力された文字列を取得し、その内容をMYSQLに登録しているのですが、ローマ数字が入力された場合文字化けします。 なので、INSERT文でエラーになります。 ローマ数字が機種依存型文字だということはわかったのですが、文字化けせずに取得する方法はありますか? 一応パラメータ取得時の request.setCharacterEncoding("Shift_JIS"); は記述しています。 もし文字化けが解消できないようでしたら、 入力チェック等でローマ数字が入力されているときには、 データベースに登録にいかないように、逃げることも 考えているのですが、その方法はありますか? よろしくお願いします。

  • jspの文字化けについて

    javaでDBから取得したデータをjspで表示する際に 文字化けしてしまいます。化けるのは「~」です。 ちなみに文字コードはshift_JISです。 jspにcontentTypeなども記述してあるし、 色々なサイトを検索して、様々な方法を試したのですが・・。 どなたかご教授お願いします。

    • ベストアンサー
    • Java
  • JSP>errorPageで指定したページが文字化けしてしまう

    WindowsXP+tomcat5.0.28にて hello.jsp -------------------------------------------------------------- <%@ page language="java" contentType="text/html;charset=Windows-31J"%> <%@ page errorPage="error.jsp" %> error.jsp ------------------------------------------------------------- <%@ page language="java" contentType="text/html;charset=Windows-31J"%> <%@ page isErrorPage="true" %> ---------------------------------------------------------------------- hello.jspの中で例外が発生するとerror.jspが呼ばれますが、error.jspの内容が文字化けしてブラウザに表示されます。 でも、error.jspを直接ブラウザから呼ぶと文字化けが起きません。 JSPの例外処理機構で呼ばれた時だけ文字化けしているように見えます。解決方法ありますか?

  • 「~」が文字化けします

    RED HAT+Apache2.0+Tomcat5+MySQL4.0を使っているのですが、 サーブレットからデータベースへの登録時に文字化けをして困っています。 「~」が「訓」という文字になってしまいます。 また、「表示」や「可能」などの5C関連は、問題ありません。 MySQLのデフォルトのエンコードはujisにしてあり、ターミナルからの SQL直打ち(ターミナルは送受信ともEUC設定)では、「~」はきちんと登録されます。 JSP・サーブレット内での遷移(入力フォーム⇒確認画面での表示など)では EUCで「~」のまま遷移して出力されているのですが、 どこを設定すればいいか、心当たりのある方いらっしゃいますか。 よろしくお願いします。

  • 「表」などの文字化け

    MySQLとPHPで携帯サイトを作成しています。 フォームから受け取ったデータに「表」の文字が入っていた場合、文字化けしてしまいます。 MySQLのバージョンは4.0.27 文字コードはEUC-JP固定で変更できません。 携帯サイトのため表示はShift-jisです。 mysql_query("SET NAMES sjis"); //フォームから受け取ったデータが「表示」 $str = "表示"; $sql="INSERT INTO DBNAME VALUES('$str')"; mysql_query($sql); としてそのデータを表示させた場合「表示」が侮ヲとなってしまいます。 ご教授お願い致します。

    • ベストアンサー
    • PHP
  • JSPの文字化けについて

    はじめまして。 初心者ですがよろしくお願いします。 現在、Strutsの勉強をしています。 ログイン画面を作成しているのですが、 以下の「logon.jsp」を表示したところ 文字化けが発生しました。 自分の思いつく限りの事は試したのですが、 一向に文字化けを解消できません。 どこが悪いのかお分かりになる方が いらっしゃいましたらご教示願います。 ○主な環境 OS:WindowsXP Java SDK :1.5.0_01 Eclips :3.0.1 Struts :1.2.4 Apache Tomcat:5.5.4 mysql :5.0.4-beta ○logon.jsp <%@ page contentType="text/html;charset=Windows-31J"%> <%@ page pageEncoding="Windows-31J" %> <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %> <!-- %@taglib uri="struts-html" prefix="html" % --> <html:html> <head><title>ログオン画面</title></head> <body bgcolor="#ffffff"> <center> <h3>ログオン画面</h3> <html:form action="/logon"> <html:errors /> <table border="0"> <tr><td>ユーザID </td><td><html:text property="userName" size="20" maxlength="30" /> </td></tr> <tr><td>パスワード</td><td><html:password property="password" size="20" maxlength="30" /></td></tr> </table> <br></br><br></br> <html:submit value="ログオン" /> </html:form> </center> </body> </html:html>

    • ベストアンサー
    • Java
  • MySQL5.1の文字化け

    多くの方が同様の質問をされていたのですが、一致する問題が見つけれなかったので、ご存じの方がおられたら教えて下さいm(_ _)m (環境)  PHP 5.2.8 ZendFramework 1.5.1 から Pdo Mysqlを使用  文字コード:SJIS  Mysql 5.1  文字コード:EUC-JP (質問内容) 携帯の絵文字データをSJISのバイナリでスクリプト中に埋め込むため、スクリプトの文字コードをSJISに統一したところ、文字化けが発生しました。 SET NAMES SJIS のSQLを発行することで表示は正しくできるようなったのですが、新たにレコードを追加しようとすると文字化けが発生します。 例)情報 → 情表 insertを行う前の文字コードをSJIS,SJIS-win,EUCと変えてみましたが、SJISもしくはSJIS-winの場合は上記の例のとおりとなり、EUCにすると完全な文字化けとなりました... おそらく登録時にMYSQLがSJIS→UTF8→EUCに変換される時に正しく変換されていないものと思われるのですが、どなたか対処方法をご存じないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • Jsp + struts使用文字化け(㎥=立方メートル)

    Tomcat + Jsp + strutsを使用して、㎥(=立方メートル)を表示させたいのですが、文字化けが起こってしまいます。調査した所、特殊記号を表示するためWindows-31Jを指定するとあったので変更したのですが、文字化けは直りません。何かいい方法はありませんでしょうか?OSはwindows XPです。よろしくお願いします。

  • 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
  • MySQLの文字化け

    Win XP MySQL4.0.13 TOMCAT4.1 APACHE2 以上を使用して自宅にて開発を行っております。 HTMLページより入力されたデータをjspファイルへ渡し、jspファイル内へ記述されたSQL文によりデータベースへの書き込みを試みております。 データベースへの書き込み自体はできるのですが、文字化けで困っています。 書き込み後、プロンプトよりselect文で確認すると、日本語のみ文字化けし、アルファベットは大文字が小文字にところどころなってしまいます。数字は問題ありませんでした。 具体的には「あいうえお」が「BDFHJ」に文字化けしていました。 MySQLのコンソールのMY.ini Setuoタブに [mysqld] default-character-set=sjis [mysql] default-character-set=sjis と指定しており、HTML,jspファイル内でもshift-jisを指定しております。 ご教授よろしくお願いしたします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう