java亂碼轉中文亂碼
『壹』 java文件亂碼,不是中文亂碼,是整個都亂碼
我們在eclipse中打開java項目,發現中文都是亂碼。
首先我們可以打開工具菜單「Project」--「Properties」。
『貳』 java 琤字亂碼轉成utf-8還是亂碼,求解決
要看你的數據是不是UTF-8的,對中文來說還有其他幾種編碼,你可以試一下:
GBK或者GB18030
GB2312 是上面的子集
Unicode
還要確認不是BIG5漢字
『叄』 如何解決Java項目中的中文亂碼
設置工作空間的編碼:
編輯器的編碼會影響到所有的項目中的字元的顯示,可以說是作用最為廣泛的設置,每一個項目都會受到這個設置的影響。點擊菜單欄中的窗口(Window)— —選項(Preferences)。
點擊常規(General)— —工作空間(Wordspace),然後在右側的文本文件編碼格式(Text file encoding)中選擇你想要設置的編碼格式,系統默認的格式為GBK。
設置項目的編碼:
如果其他的項目中不存在亂碼問題,只是個別項目顯示時出現亂碼,那麼我們不需要設置工作空間的編碼,只需要修改項目的編碼即可。
選中項目後,右鍵點擊,在彈出的菜單中點擊屬性(Properties)。
在彈出的屬性窗口中,選擇資源(Resource)— —點擊選擇Other(其他),然後選擇你想要的編碼格式。
設置單個文件的編碼:
只是個別文件出現了亂碼,那麼設置個別文件的編碼格式就可以解決問題了。選中有亂碼的文件,然後點擊右鍵。
在彈出的菜單中選擇屬性(Properties)。
在彈出的屬性窗口中選擇資源,點擊Other(其他)後設置個別文件的編碼方式
『肆』 java 中文亂碼,把hello world改成中文的就會顯示亂碼!
javac的時候價格參數。
-encoding 你的文件時utf8編碼的嗎?
如果是就這樣
javac -encoding utf-8 Java1_2.java
『伍』 java中字元亂碼轉化的問題
如果B接受編碼方式也不能更改為和A一致,那麼舉個例子
A GBK,B UTF-8
B獲取的內容亂碼,
String s=request.getParameter("欄位名");
這里s會亂碼,可以做如下轉換
byte[] bytes=s.getBytes(" B當前的編碼格式");
String s=new String(bytes,"A的編碼方式");
這個時候s就正常了
『陸』 java程序執行中文亂碼如何解決
看你編譯沒問題,運行時報亂碼錯誤。說明是代碼的編碼跟DOS系統的編碼不一致。
DOS系統是ASCII碼,你看一下你代碼的編碼是什麼,應該不是ASCII碼,你把你的代碼編碼轉換成ASCII碼試試先,不行再轉成UTF-8試試,這樣應該就解決了(如果是編碼不一致的問題的話)
『柒』 java中文亂碼 為什麼有時候只能處理前面中文,後面還是亂碼
這要看你系統本來默認是什麼編碼方式的了這很重要。
在.java中聲明的String變數的字元編碼,是與當前文本編輯器使用的字元編碼一致
例如,在MyEclipse中,我設置的默認編碼為GBK
系統數據依照gbk的編碼方式。使用str.getBytes("gbk")把數據還原(這點很重要),
然後利用new String(str.getBytes("gbk"), "utf-8")把數據從gb2312轉換成utf-8
所以要清楚知道str.getBytes("gbk")這里的str字元本來是不是gbk編碼的很重要,如果它是iso8859-1呢,那就會出錯了。也許你不小心弄混了。就會時對時錯了。
記住:
在.java中聲明的String變數的字元編碼,是與當前文本編輯器使用的字元編碼一致
例如,在MyEclipse中,我設置的默認編碼為GBK
則字元就是gbk編碼格式。
『捌』 java程序中文漢字會亂碼
首先要加一個utf-8過濾器以過濾post提交亂碼問題;
再在tomcat的server.xml文件中配置<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
處理get提交亂碼問題;
注意在用了這2個配置後就不要再在程序中用getBytes對參數進行轉碼了
『玖』 在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中文亂碼問題
server.xml
tomcat配置文件
修改
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
試試看..