javaget亂碼-ag真人国际官网
① 在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中 get提交方式的亂碼問題。
這個原因是伺服器導致的,伺服器比如tomcat接收get方法默認使用的是iso-8859-1編碼,而瀏覽器發送時文字編碼是和頁面編碼保持一致的,如果頁面是使用utf-8 編碼 get方法文字自然是使用utf-8編碼,但接收伺服器沒有設置的情況下用了iso-8859-1編碼接收,中文自然就成亂碼了,不過由於iso-8859-1編碼是單位元組編碼所以我們可以使用getbytes("iso-8859-1"),"utf-8"這樣把文字重新轉換成utf-8 編碼。
第一個發送的文字是utf-8編碼 而tomcat接收後用錯誤的iso-8859-1編碼了,這樣getbytes("iso-8859-1")後會重新得到正確的utf-8編碼的位元組數組 ,然後用 new
string(request.getparameter("something").getbytes("iso-8859-1"),"utf-8")重新將位元組編碼成utf-8編碼的文字這樣文字就正確了。
如果是tomcat的話 server.xml文件里
後邊的uriencoding就是設置get方法編碼的如果沒有指定url接收的編碼類型,自動會用iso-8859-1編碼
③ java 亂碼 根本原因是什麼
右鍵點擊亂碼文件,選preferenses,看看resource里的編碼是不是正確,虧攔搜如果不是utf-8就改成utf-8,衡或如果是utf-8的話你改成別的編碼試試看看,然後把正常狀態下的內容復制出來,在把文件改成utf-8後銷歷把文件復制進去