Ⅰ 用java HttpURLConnection 讀取網頁中文亂碼
出現這種情況,說明讀取到的是iso8859-1格式,不能識別中文編碼,所以需要轉換一下編碼格式才可以正常顯示的,完整代碼舉例:
String data = "&version=1410&idType=101&idNumber=4107701214512&ext1=1";
System.out.println(data);
URL url = new URL("http://localhost/bankcardcert/bankCardValidate.htm");
StringBuffer bankXmlBuffer = new StringBuffer();
//創建URL連接,提交到銀行卡鑒權,獲取返回結果
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent", "directclient");
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.println(data);
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
bankXmlBuffer.append(inputLine);
}
in.close();
String data = new String(bankXmlBuffer.toString().getBytes("iso-8859-1"), 「utf-8」);
System.out.println(data);
Ⅱ 如何解決 jsp 中url傳值的中文亂碼問題
在jsp中,如果在url中傳遞中文時會出現亂碼,其實解決方法非常簡單: 第一步:編碼(以傳遞的參數為str為例) 在傳遞數據前將str進行編碼Java.net.URLEncoder.encode(str) 第二步:解碼 在獲取數據端將得到的數據進行解碼 new String(str.getBytes("ISO8859_1"))
簡單示常式序如下:
<%@ page contentType="text/html;charset=gb2312" %
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("編碼的是這里","GB2312")%"點擊這里</a<%//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null){str=request.getParameter("url");
//下面是解碼
str=java.net.URLDecoder.decode(str,"GB2312");
Ⅲ java編程-SSH框架-URL傳中文參數部分亂碼。。。
換行下就可以了 比如你的url是 abc.action?name="張三"你到action里這樣轉化下 new String (name.getBytes("iso-8859-1"),"gb2312");就可以了
Ⅳ java中通過url獲取網頁內容,中文顯示是亂碼
URLConnection context = url.openConnection();
InputStream in = context.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
包裝流的時候要加入網站的編碼 ,gbk和utf-8都試試
Ⅳ java中url後面加中文參數urlencoder.encode亂碼怎麼辦
你這個問題真心不好辦,建議你把頁面編碼改為GBK編碼把。像樓上說的這些方法看似行得通,原理就是把utf-8轉為gbk然後再轉回utf-8,但那樣是不能解決問題的,試圖通過String
newStr
=
new
String(str.getBytes("gbk","utf-8"));辦不到的,結果是中文字元為奇數會出現最後一個字亂碼。我以前也曾碰到這個情況,最後還是把頁面統一編碼解決。
-
Ⅵ java http spring mvc 302重定向 url 中文亂碼
把中文轉成unicode編碼,然後放到配置文件中,通過取unicode編碼來訪問中文,就不會存在亂碼的問題了,具體方法就是直接在配置文件里該中文=unicode編碼就行了,然後取到這個配置文件,讀取對應的值,然後放到url中。
Ⅶ java url中有中文 傳到後台有亂碼 怎麼改 亂碼是
你這個問題真心不好辦,建議你把頁面編碼改為GBK編碼把。像樓上說的這些方法看似行得通,原理就是把utf-8轉為gbk然後再轉回utf-8,但那樣是不能解決問題的,試圖通過String newStr = new String(str.getBytes("gbk","utf-8"));辦不到的,結果是中文字元為奇數會出現最後一個字亂碼。我以前也曾碰到這個情況,最後還是把頁面統一編碼解決。
Ⅷ java,HttpURLConnection輸出漢字亂碼,怎麼解決啊
conn=(HttpURLConnection)mUrl.openConnection();
conn.setRequestMethod("GET");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-type","application/x-www-form-urlencoded;charset=UTF-8");//解決亂碼問題
conn.connect();//連接遠程伺服器
重點這一句:application/x-www-form-urlencoded;charset=UTF-8
Ⅸ 在java中怎樣處理中文亂碼的問題(有幾種處理方式)
讀取文件的時候如果是用的read方法(位元組流),碰到中文輸出就是亂碼,然後存儲的時候設置下編碼為GBK或者是UTF-8形式即可,可以有效的解決亂碼問題。
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
備註: 流用完之後必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
可以通過「FileOutputStream」創建文件實例,之後過「OutputStreamWriter」流的形式進行存儲,舉例:
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.txt」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
Ⅹ java URL請求亂碼
對請求參數的value做URLEncode.encode編碼設置,或者服務端需要解碼URLDecoder.decode