Ⅰ java簡訊的url怎麼處理中文亂碼怎麼處理
1、在客戶端用escape(encodeURIComponent(fieldValue))方法編碼,例如:
復制代碼代碼如下陸仔:
title=escape(encodeURIComponent(title)); //擾悉改這是js里的函數
url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;
2、在服務端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),進行解碼。
-----------------------------------------------------------------------------
parent.window.location.href 和 iframe中src的亂碼問題。
要在這兩個url地址中傳中文,緩判必須加編碼,然後再解碼。
編碼:encodeURI(encodeURI("包含中文的串"))
解碼:java.net.URLDecoder.decode("需要解碼的串","utf-8");
Ⅱ java url中有中文 傳到後台有亂碼 怎麼改 亂碼是
你這個問題真心不好辦,建議你把頁面編碼核中改為慧氏橘GBK編碼把。像樓上說的這些方法看似行得通,原理就是把utf-8轉為gbk然後再轉回utf-8,但那樣是不能解決問題的,試圖通過String newStr = new String(str.getBytes("gbk","utf-8"));辦不到的,結果是中文字元為奇數會出現最後一個字亂碼。我以前也曾碰到這個情況,最後還是把頁面統一編碼解前團決。
Ⅲ java filter 過濾器中文亂碼 怎麼解決啊
1、首先編寫一個Java類的filter代碼。操作步驟:
(1)在myeclipse中新建一個java類,
(2)單擊「Add」按鈕,在彈出來的對話框中「選擇介面」文本框中輸入Filter,
並選擇匹配好的類型javax.servlet
(3)單擊「OK」按鈕返回"New Java Class"對話,然後單擊「Finish」按鈕,就可以看到創建的過濾器框架:
過濾器類:Encoding.java,代碼如下:
package com;
import java.io.IOException;
import javax.servlet.*;
public class Encoding implements Filter {
protected String encoding=null;
protected FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null){
//得倒指定的編碼
String encode=getEncoding();
if(encode!=null){
//設置request的編碼
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig; //得到web.xml中的配置編碼
this.encoding=filterConfig.getInitParameter("Encoding");
}
protected String getEncoding(){
return encoding;
}
}
2、在web.xml文件寫入以下代碼:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制編碼 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化參數 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Ⅳ java 地址欄直接輸入中文參數 後台亂碼
你在後台Action里設置下把接收的參數編譯一下.如果不是這個問題的話,就比較麻煩了
要寫個過濾器 代碼如下
<!-- 設置編碼格式為utf-8 -->
<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>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>神悔*.do</url-pattern>
</filter-mapping>
Ⅳ 解析URL中的漢字參數 Java
import java.net.URLDecoder;
import java.net.URLEncoder;
String strTest = "?=abc?中%1&2<3,4>滲信虧叢神";
strTest = URLEncoder.encode(strTest, "坦悉UTF-8");
System.out.println(strTest);
strTest = URLDecoder.decode(strTest,"UTF-8");
System.out.println(strTest);
Ⅵ Java URL訪問路徑中文問題
不要用中文路徑,即使你這次適配了,換個環境還是可能不行的,文件英文可以用file,圖片可以用pic
Ⅶ URL傳遞中文、Ajax傳遞中文,Java如何編碼如何解決亂碼
地址欄中出現漢字的情況有兩種,一種是漢字出現在URL的路徑部分,一種是漢字出現在URL的傳參的部分,第二種情況的時候必須採用編碼後傳參,接受時解碼的方式完成傳參。js中編碼有escape(),encodeURI(),encodeURIComponent()三個常用的方法,escape()常常用在提交頁面和處理頁面的編碼格式相同的情況下(比如它們都是GB2312),encodeURI()和encodeURIComponent()的用法基本相同,區別在於encodeURIComponent()也對"?"等特殊字元進碰蠢薯行編碼。
一開始遇到中文參數的時候,使用encodeURI()進行了一遍編碼,傳過去後,發現解碼出現問題,於是想到可能是檔啟編碼方法使用錯誤,於是使用escape()方法,這時發現解碼時拋出isHexDigit異常。藉助網路搜索isHexDigit異常,
發現原來,是escape()方法造成了異常,同時了解了瀏覽器傳遞地址的一些原理,在瀏覽器地址欄里,瀏覽器認為%是個轉義字元,瀏覽器會把%與%之間的編碼,兩位兩位取出後進行解碼,然後再傳遞給處理頁面,
然後由處理頁面進行再次解碼。由此我想到一直使用encodeURI方法是正確的,只是需要使用兩次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文編碼成%xy的格式,
第二次是對%xy中的%進行編碼,%編碼成%25。整個傳參過程大體應該是:提交頁面使用encodeURI(encodeURI("中文"))編碼,把最後的編碼結果%25xy傳遞給處理頁面的過程中,瀏覽器獲取URL地址
(注意openModelDialog方法,瀏覽器獲取不到參數編碼)後解碼成%xy,然後把%xy傳遞給處理頁面,處理頁面使用URLDecoder.decode(request.getParameter("參數名"),"UTF-8");完成解碼。
總結:1、漢字出現在URL路徑部分的時候不需要編碼解碼;
2、使用encodeURI進行2次編碼;
3、在openModelDialog()打開的模式窗體里沒辦法用request.getParameter正確獲取參數;
客戶端和伺服器在傳遞數據時可以用過濾器filter解決字元編碼問題,但filter只能解決post方式提交的數據。對於get方式,可以使用兩次encodeURI(encodeURI(中文))並在伺服器中使用URLDecoder.decode(中文, "UTF-8");
今天用Ajax校驗數據時也遇到這個笑者問題,盡管頁面、類和web容器都統一了字元編碼,提交的數據依然是亂碼,所以就採用了2次encodeURI()編碼方式,亂碼問題就解決了。
Ⅷ javaweb中當重定向的url中含有中文時怎麼處理
一般瀏覽器自己會處理,你也可以自己進行url編碼或base64編碼
Ⅸ Java中做網路抓取demo用的Jsoup進行url解析如果鏈接中帶中文就會出現亂碼
哪是因為網頁編碼都是UTF_8的 你出現中文即是GBK的 所以需核知早改雀要轉成UTF_8格式的字元串 就不會出猛輪現亂碼了
Ⅹ java中通過url獲取網頁內容,中文顯示是亂碼
URLConnection context = url.openConnection();
InputStream in = context.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
包裝物睜陵流的早慧時候要加罩戚入網站的編碼 ,gbk和utf-8都試試