
2015年01月24日
【Java】setCharacterEncoding() メソッドで文字化けが解消しない
Servlet でGET メソッドで文字列をサーバにリクエストした後、ServletRequest クラスのメソッドsetCharacterEncoding() を使って、URLエンコードをしようとしてみたが、日本語の文字化けが解消しなかったので、ほかの方法を試してみた。
■環境
Windows 8.1(64bit)
Tomcat 7.0.11 [ apache-tomcat-7.0.11-windows-x64.zip / ダウンロード ]
Java SE 6 Update 24 [ jdk-6u24-windows-x64.exe / ダウンロード ]
■server.xml に、「URIEncoding=文字エンコード名」を追記する
この方法で文字化けは解消しました
※編集したファイル: [ Tomcat のインストールフォルダ ] / conf / server.xml
■ServletRequest クラスのメソッドsetCharacterEncoding() は、ウンともスンとも言わず・・・。
次の方法では、文字化けは解消しませんでした。
1. [server.xml] を以下のように記述し、setCharacterEncoding() メソッドと並記する方法
2. javax.servlet.Filter インターフェースを実装したFilter クラスを追加して、web.xml から呼び出す方法
[ExampleServlet.java]
import java.io.*;
import javax.servlet.*;
public class ExampleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
request.setCharacterEncoding("UTF-8");
・
・
}
}
■環境
Windows 8.1(64bit)
Tomcat 7.0.11 [ apache-tomcat-7.0.11-windows-x64.zip / ダウンロード ]
Java SE 6 Update 24 [ jdk-6u24-windows-x64.exe / ダウンロード ]
■server.xml に、「URIEncoding=文字エンコード名」を追記する
この方法で文字化けは解消しました
※編集したファイル: [ Tomcat のインストールフォルダ ] / conf / server.xml
[server.xml]
・
・
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
■ServletRequest クラスのメソッドsetCharacterEncoding() は、ウンともスンとも言わず・・・。
次の方法では、文字化けは解消しませんでした。
1. [server.xml] を以下のように記述し、setCharacterEncoding() メソッドと並記する方法
[server.xml]
・
・
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />
2. javax.servlet.Filter インターフェースを実装したFilter クラスを追加して、web.xml から呼び出す方法