日本語の扱い(文字化け対策)

トップ > チップス > 日本語の扱い(文字化け対策)
2012-02-13, mbstring tomcat

エンコードの設定に関するチップスです。

GETのパラメタで日本語を送信するには

URLパラメタ中に日本語が現れる場合、server.xmlのConnector要素に下記の属性を追加する必要があります。(他のドキュメント等を読むと、パラメタの受信側がutf8を想定していれば、指定の必要がないような感じがするのですが、どのような場合でも必須のようです。)

server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
   redirectPort="8443" {strong:useBodyEncodingForURI="true"}/>

パラメタを受け取る側(ServletやJSP)では、リクエストのエンコードを明示する必要があります。

foo.jsp
<%@ page language="java" contentType="text/html; charset={strong:UTF-8}"
    pageEncoding="{strong:UTF-8}" %>
<% request.setCharacterEncoding("{strong:UTF-8}"); %>

この記事は役に立ちましたか?