質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

3013閲覧

jspファイルの文字化けが直りません。

Y.Mamoru

総合スコア47

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/09/10 09:23

編集2020/09/11 01:19

〇困っていること
以下のjspファイルをブラウザ起動させると数字と英語以外が全て『?』になってしまいます。

〇やってみたこと
charsetやencodeは全てUTF-8で統一
プロジェクトのリソースから、テキスト・ファイル・エンコードをUTF-8で統一

しかし結果は変わりませんでした。
ご教授お願いします。

使用ツールはeclipseです。

関連しているページも全て載せさせていただきます。

jspファイル

1<%@ page contentType="text/html; pageEncoding="UTF-8"%> 2<%@ page import="java.util.List, DataBase.DataBase" %> 3 4 5<!DOCTYPE html> 6<html> 7<head> 8<meta charset="UTF-8"> 9<title>既存アンケートの表示</title> 10<link rel="stylesheet" href="CSS/DB_Connect.css"> 11</head> 12<body> 13<H1>アンケートフォーム</H1> 14 15以下略

servletファイル

1package DataBase; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5import java.sql.Connection; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.sql.Statement; 9import java.util.ArrayList; 10import java.util.List; 11 12import javax.servlet.ServletException; 13import javax.servlet.http.HttpServlet; 14import javax.servlet.http.HttpServletRequest; 15import javax.servlet.http.HttpServletResponse; 16 17 18public class DataBaseServlet extends HttpServlet { 19 private static final long serialVersionUID = 1L; 20 21 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 22 23 request.setCharacterEncoding("utf-8"); 24 25 String sql ="SELECT * FROM Anke"; 26 27 Connection con = null; 28 Statement smt = null; 29 30 try { 31 con = DBManager.getConnection(); 32 smt = con.createStatement(); 33 ResultSet rs = smt.executeQuery(sql); 34 35 List list = new ArrayList(); 36 37 while(rs.next()) { 38 DataBase db = new DataBase(); 39 db.setNo(rs.getInt("No")); 40 db.setPost1(rs.getInt("post1")); 41 db.setPost2(rs.getInt("post2")); 42 db.setAddress(rs.getString("address")); 43 44 list.add(db); 45 } 46 request.setAttribute("list", list);; 47 48 }catch(SQLException e) { 49 throw new ServletException(e); 50 }finally { 51 if(smt != null) { 52 try {smt.close();}catch(SQLException ignore) {} 53 } 54 if(con != null) { 55 try {con.close();}catch(SQLException ignore) {} 56 } 57 } 58 59 request.getRequestDispatcher("/DataBase.jsp").forward(request, response); 60 } 61 62} 63

※追記
web.xmlに書かれているencodeもUTF-8になっていました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2020/09/10 10:16

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> を <%@ page contentType="text/html; charset=UTF-8" pageEncoding="windows-31j"%> にすると、どうなりますか?
Y.Mamoru

2020/09/10 10:26

試してみましたが変わりませんでした。。。 指定の場所を一か所だけと、複数箇所試してみましたが、状態は変わらずです。
momon-ga

2020/09/10 10:40 編集

提示の数字と英語以外の部分というのは <H1>アンケートフォーム</H1> の”アンケートフォーム”が文字化けするという認識であってますか?
Y.Mamoru

2020/09/11 01:18

その通りです。 一応今アンケートの問いに関する文などは正しく日本語で表示されるようになりました。 しかしoracleデータベースからひっぱってきた日本語文が?表示になってしまいます。 アドバイスをお願いしまいます。
guest

回答1

0

ベストアンサー

java

1response.getWriter().append("Served at: ").append(request.getContextPath()); 2 3PrintWriter out = response.getWriter();

この2行が不要です。

なお、これは文字化けとは直接関係ありませんが、JSPにて正しくないmeta属性が記載されています。

html

1<meta http-ecobtau^" charset="UTF-8">

http-equiv の誤りではないかと。

投稿2020/09/10 12:50

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.Mamoru

2020/09/11 01:16

ありがとうございます。 上記の不要な文を消し、meta属性の誤りを消し、 そしてservletに、request.setCharacterEncoding("utf-8");を加えてみました。 その結果、基本的に正しく表示されるようになったのですが oracleデータベースからselectしてきた日本語文だけが?で表示されてしまいます。 デバックをしてみるとservletでselectしてきた値、jspにまで引っ張ってきた変数の値は正しく日本語文のまま入っています。 ですので、あとは表示のときだとは思うのですが、 アドバイスお願いします。
Y.Mamoru

2020/09/11 01:26

解決しました! 2行消したときに余分に消していたみたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問