java web转码_javaweb后台转码
為什么需要轉(zhuǎn)碼?
客戶端向服務(wù)器發(fā)送請求的四種情況:1、URL方式直接訪問;2、頁面鏈接(屬于get請求);3、表單get提交;4、表單post提交
1.url(url和頁面鏈接):各大瀏覽器、各個操作系統(tǒng)對URL的URI、QueryString編碼都可能存在不同.tomcat對URI的解碼操作是首先獲取Connector的解碼集,
該配置在server.xml中,? 如果沒有定義則會采用默認編碼ISO-8859-1來解析。
2,表單:發(fā)送請求時都是根據(jù)設(shè)置的charset進行編碼,解碼時,get方式根據(jù)設(shè)置的URIEncoding進行,post方式仍根據(jù)頁面設(shè)置的charset.
jetty默認是utf-8.jetty與tomcat不同,不是在xml配置文件中修改,可以在Jvm參數(shù)中加入:Dorg.mortbay.util.URI.charset=字符編碼@參考文章
如何轉(zhuǎn)碼?
iso-8859-1轉(zhuǎn)utf-8
String args=new String(request.getParameter("args".getBytes("ISO8859-1"),"utf-8");
讀取文件有時亂碼,指定編碼格式:
String pathname = "D:/用戶目錄/我的文檔/Tencent Files/1480756395/FileRecv/新建文本文檔 (14).txt"; // 絕對路徑或相對路徑都可以,這里是絕對路徑,寫入文件時演示相對路徑
File filename = new File(pathname); // 要讀取以上路徑的input。txt文件
InputStreamReader reader = new InputStreamReader(
new FileInputStream(filename), "GB2312"); // 建立一個輸入流對象reader
BufferedReader br = new BufferedReader(reader); // 建立一個對象,它把文件內(nèi)容轉(zhuǎn)成計算機能讀懂的語言
String line = "";
line = br.readLine();
// testEncode(line);
String line2="";
line2+=line;
while (line != null) {
line = br.readLine(); // 一次讀入一行數(shù)據(jù)
line2+=line;
}
總結(jié)
以上是生活随笔為你收集整理的java web转码_javaweb后台转码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这是多少钱啊?
- 下一篇: java 文件解析异常_java中异常的