Webアプリの文字化け
【Javaの文字化け対策】
■HTMLファイルの場合
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />←必要
<title>テスト</title>
</head>
<body>
テストです。
</body>
</html>
■jspファイルの場合
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>←これが重要
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />←これは無駄、
<title>テスト</title>
</head>
<body>
テストです。
</body>
</html>
■サーブレットファイル
package hoge;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="mysrv",urlPatterns="/mysrv")
public class MyServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException{
try{
response.setContentType
("text/html;charset=UTF-8");←ここで文字コード設定
//HTML
PrintWriter pw = response.getWriter();
pw.println("<html>\n"
+ "<head><title>テスト</title>\n"
+ "<body>テストです。</body>\n"
+ "</html>\n");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
以上、
文字コードを設定するには、各ファイルによって異なる。ファイル間で文字データをやり時する時は、文字コードを統一しなければ、文字化けを起こす。
文字コードにはShift-JIS EUC-JP JIS UTF-8 UTF-16がある。
※コメント投稿者のブログIDはブログ作成者のみに通知されます