1. 程式人生 > >Tomcat中文亂碼處理總結

Tomcat中文亂碼處理總結

package com.cdu.yige.filter;
import java.io.UnsupportedEncodingException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
/**
* 對GET請求引數加以處理!
* @author lucien
*
*/
public class GetRequest extends HttpServletRequestWrapper {
     private HttpServletRequest request;
     private String charset;
     
     public GetRequest(HttpServletRequest request, String charset) {
          super(request);
          this.request = request;
          this.charset = charset;
     }

     @Override
     public String getParameter(String name) {
          // 獲取引數
          String value = request.getParameter(name);
          if(value == null) return null;//如果為null,直接返回null
          try {
               // 對引數進行編碼處理後返回
               return new String(value.getBytes("ISO-8859-1"), charset);
          } catch (UnsupportedEncodingException e) {
               throw new RuntimeException(e);
          }
     }
     
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
     public Map getParameterMap() {
          Map<String,String[]> map = request.getParameterMap();
          if(map == null) return map;
          // 遍歷map,對每個值進行編碼處理
          for(String key : map.keySet()) {
               String[] values = map.get(key);
               for(int i = 0; i < values.length; i++) {
                    try {
                         values[i] = new String(values[i].getBytes("ISO-8859-1"), charset);
                    } catch (UnsupportedEncodingException e) {
                         throw new RuntimeException(e);
                    }
               }
          }
          // 處理後返回
          return map;
     }
     @Override
     public String[] getParameterValues(String name) {
          String[] values = super.getParameterValues(name);
          for(int i = 0; i < values.length; i++) {
               try {
                    values[i] = new String(values[i].getBytes("ISO-8859-1"), charset);
               } catch (UnsupportedEncodingException e) {
                    throw new RuntimeException(e);
               }
          }
          return values;
     }
}

相關推薦

Tomcat中文亂碼處理總結

package com.cdu.yige.filter; import java.io.UnsupportedEncodingException; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.

處理tomcat中文亂碼問題

在JSP/Servlet 中主要有以下幾個地方可以設定編碼,pageEncoding="UTF-8"、contentType="text/html;charset=UTF -8"、request.setCharacterEncoding("UTF-8")和response.s

C#對URL中的中文亂碼處理

res quest 類庫 處理 odin .dll 前言 中文亂碼 ring 前言:UTF-8中,一個漢字對應三個字節,GB2312中一個漢字占用兩個字節。 不論何種編碼,字母數字都不編碼,特殊符號編碼後占用一個字節。 1、直接在C#後臺編碼URL參數 引用類庫:Syste

解決Struts中文亂碼問題總結

servlet vax align url conn throws 當前 報錯 思想 在進行struts開發的過程中。總也是出現非常多的亂碼問題,但歸根究竟,也僅僅是下面三種情況: ㈠頁面顯示中文亂碼 ㈡傳遞參數中文亂碼 ㈢國際化資源文件亂碼

Tomcat中文亂碼解決辦法

-1 mage ima img con utf-8 結點 tor http 有時候發現自己將中文編碼後還是會存在亂碼的情況,解決辦法就是在Server.xml中的Connector結點,配置 URIEncoding="UTF-8"即可 Tomcat中文亂碼解決辦法

Datastage JDBC Connector 中文亂碼處理

default 中文亂碼 在Datastage中,通常處理中文字符編碼的時候是通過設置工程、JOB、stage三個級別的NLS但JDBC Connector stage這個組件並沒有NLS選項,而是通過 stage裏面的“Properties”選項卡裏面的“Session”-->“Charact

Java中文亂碼處理

art data- data XML direct 中文亂碼處理 new size tracking 一、處理get方法中文亂碼 方法1 String name = new String(request.getParameter("userName&

MySQL中文亂碼處理_字符集轉換處理

MySQL 中文亂碼 字符集轉換-- 中文亂碼修復 -- 查看MySQL服務參數設置mysql> show variables like ‘%character%‘;+--------------------------+----------------------------------+| Vari

Python爬蟲中文小說網點查找小說並且保存到txt(含中文亂碼處理方法)

nbsp nor png erro 請求方式 輸出結果 下載 ros mozilla 從某些網站看小說的時候經常出現垃圾廣告,一氣之下寫個爬蟲,把小說鏈接抓取下來保存到txt,用requests_html全部搞定,代碼簡單,容易上手. 中間遇到最大的問題就是編碼問題,第一抓

centos java tomcat 中文亂碼解決辦法

title 查詢 發現 即使 art 操作 https size tro 現象: cenos 部署java web 程序 ,java類中有中文 出現亂碼現象 即使使用: System.getProperty("中文") 控制臺都出現 ??????

spring mvc 中文亂碼處理

param pat encoding mvc ren 處理 web.xml framework 亂碼處理 在 web.xml中添加 <filter> <filter-name>characterEncodingFilter</filt

日誌中文亂碼處理,請求亂碼,響應亂碼,保存數據到數據庫亂碼

conf 服務器 過濾器 close 發布服務 setting open odi idea 1.日誌亂碼處理 中文亂碼需要修改四個部分:1.idea安裝目錄下的bin/idea64.exe.vmoptions和bin/idea.exe.vmoptions追加-Dfile.e

IntelliJ IDEA 使用 Tomcat 中文亂碼的各種問題

https://blog.csdn.net/u012611878/article/details/80723491 工程亂碼 開啟File-Setting, 找到File Encodings這個選項,把encoding設定成你工程的編碼即可,一般是UTF-8,如下圖(紅框的地方),然

jquery 通過url 進行地址傳參(中文亂碼處理)

一、傳遞引數頁面.html <script type="text/javascript">     var name = 'abc';  //字串英文     var num = 99

Linux mysql 中文亂碼處理

在專案中,通過tomcat上部署的web伺服器,客戶端通過http向伺服器的mysql插入資料,但插入的中文會變成???這樣的內容,原因有很多 1.伺服器沒有對request和response進行編碼處理,這點好解決,可以通過設定字符集來處理 /** * @see HttpServ

Java web 中的中文亂碼問題總結

一、亂碼由來:        大家都知道一句話:“亂碼是因為編碼和解碼方式不一致造成的”。 那麼,我們為什麼要編碼呢?        那就要從計算機底層是如何表示人類語言(

idea tomcat 中文亂碼問題

一、修改tomcat下的conf/service.xml 增加以下下劃線部分     <Connector port="8085" protocol="HTTP/1.1"              

java實現Servlet的中文亂碼處理

HttpServletRequest:這個物件封裝了客戶端提交過來的一切資料 客戶端提交資料給服務端(這裡指的是在網頁輸入內容提交servlet處理時,在servlet控制檯的輸出亂碼),如果資料中帶有亂碼,可參照如下方法解決: 如果是GET請求(若無亂碼則無需修改) String n

requests(三):json請求中中文亂碼處理

  最近收到一個問題:json格式請求資料中有中文,導致服務端簽名失敗。 問題詳情: 一位同學在傳送json格式的post請求時,請求資料中有中文內容: {"inputCodes":["6932608700850"],"terminal":{"status":1,"channel":"D002

requests:json請求中中文亂碼處理

requests庫中,在處理json格式的請求時呼叫的json.dumps方法引數ensure_ascii預設為True.表示序列化時對中文預設使用的ascii編碼。如果想要顯示中文,則將此引數的值改為False即可。  原始碼修改: 在requests原始碼的models.py檔案中,找到pr