1. 程式人生 > >哪些地方需要考慮字符編碼

哪些地方需要考慮字符編碼

web AI 安裝 except highlight dev string exception oca

1.jsp頁面

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

2.jdbc獲取連接時候

DriverManager.getConnection("jdbc:mysql://localhost:3306/developerdb?useUnicode=true&characterEncoding=utf8", "developer", "developer");

3.Tomcat

  覽器請求傳到Tomcat容器的時候還會經歷一次編碼轉換,而Tomcat7.0對請求的默認編碼字符集是ISO8859-1,所以解決方法就是在java代碼裏對請求再次進行編碼轉換。其中有兩種處理方式:

 (1)對參數值的字符串進行編碼轉換。

new String(request.getParameter("name").getByte("ISO-8859-1"),"UTF-8");

 (2)對進入容器的所有請求進行編碼轉換。這個方式需要配置一個過濾器,然後在web.xml中調用

public void doFilter(ServletRequest request, ServletResponse response,  
            FilterChain chain) throws IOException, ServletException {  
    request.setCharacterEncoding("utf-8");  
    chain.doFilter(request, response);  
}

  或者在servlet的doPost方法的最開始加上兩句

request.setCharacterEncoding("UTF-8");  
response.setContentType("text/html;charset=UTF-8"); 

  (3)如果使用spring,可以直接調用spring的包

<!-- CharacterEncodingFilter provided by SpringFramework -->  
<filter>  
    <filter-name>characterEncodingFilter</filter-name>  
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    <init-param>  
        <param-name>encoding</param-name>  
        <param-value>UTF-8</param-value>  
    </init-param>  
    <init-param>  
        <param-name>forceEncoding</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</filter>  
  
<filter-mapping>  
    <filter-name>characterEncodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping> 

4.在安裝數據庫時編碼選擇以及在新建數據庫時的編碼選擇。

哪些地方需要考慮字符編碼