本文目錄一覽:
- 1、cmd運行的java文件咋是亂碼
- 2、java中filewriter中文亂碼怎麼解決?
- 3、打開java文件都是亂碼怎麼解決?
- 4、Java安裝後運行CMD輸入JAVA提示亂碼?
- 5、JAVA開發中,常見的亂碼有哪幾種,如何解決?
- 6、在java中怎樣處理中文亂碼的問題?(有幾種處理方式)
cmd運行的java文件咋是亂碼
當我們不加設置就編譯時,相當於使用了參數:javac -encoding gbk XX.java,當然就會出現不兼容的情況。
解決方法:
1、轉換成UTF-8編碼格式,但仍然有錯解決辦法是:應該使用-encoding參數指明編碼方式:javac -encoding UTF-8 XX.java
2、開始–計算機–滑鼠反鍵(滑鼠右鍵)–屬性–高級系統設置–環境變數–系統變數新建。然後輸入:「JAVA_TOOL_OPTIONS」變數,值為「-Dfile.encoding=UTF-8」然後確定、確定、在確定後。新開命令行窗口,再次輸入javac命令。
java中filewriter中文亂碼怎麼解決?
要明白,用filewriter讀取文件採取的是平台默認編碼(視操作系統而定)。當要寫入的文本文件編碼和平台默認編碼不一致時,就會出現中文亂碼的情況。這時可以使用filewriter 的父類OutputStreamWriter來讀取。OutputStreamWriter允許用戶指定編碼方式,代碼為:
FileInputStream fis=new FileInputStream(“文件路徑”);
OutputStreamWriter osw=new OutputStreamWriter(fis,”文本文件的編碼方式(ANSI,UTF-8…)”);
osw.write();
這樣寫入的編碼可以保證和源文本文件編碼一致,就不會出現亂碼了。
打開java文件都是亂碼怎麼解決?
編輯器的編碼會影響到所有的項目中的字元的顯示,可以說是作用最為廣泛的設置,每一個項目都會受到這個設置的影響。點擊菜單欄中的窗口(Window)— —選項(Preferences)。
Java安裝後運行CMD輸入JAVA提示亂碼?
可在 CMD 窗口輸入 chcp 65001 後,再嘗試輸入 java 命令。
chcp 命令是用來顯示或更改活動控制台的代碼頁。
在 CMD 窗口直 輸入 chcp ,可以顯示當前代碼頁編號,默認是 936 ,表示支持 GB2312 編碼。
將代碼頁設置為 65001 ,則支持 UTF-8 編碼。
JAVA開發中,常見的亂碼有哪幾種,如何解決?
1、瀏覽器調用jsp,html等頁面中文顯示亂碼
此情況需滿足兩個要求:
(1)文件本身是以utf-8編輯保存的(myEclipse中在properties中滑鼠右鍵選擇utf-8)
(2)瀏覽器用utf-8解析:
(手動)== 在瀏覽器中右鍵選擇編碼格式為utf-8
(智能)== 在文件中寫入如: meta name=”content-type” content=”text/html; charset=UTF-8″ 通過meta標籤模擬response頭,起到告訴瀏覽器用utf-8的編碼解析
(智能)== response.setContentType(“text/html;charset=UTF-8”);起到告訴瀏覽器用utf-8的編碼解析
常用:
meta name=”content-type” content=”text/html; charset=UTF-8″或meta charset=”utf-8″
%@ pageEncoding=”utf-8″%
?xml encoding=”UTF-8″?
2、通過瀏覽器調用servlet,頁面顯示亂碼。
Servlet亂碼分為request亂碼和response亂碼;
(1)response亂碼問題
解決方法:
在網上很有效的解決方法是添加:
response.setCharacterEncoding(“UTF-8”);
解決不了,後來又搜到一條解決方法是:
response.setContentType(“text/html;charset=utf-8”);或者 response.setHeader(“content-type”,”text/html;charset=UTF-8″);告訴瀏覽器用utf-8解析。(setHeader是HttpServletResponse的方法。如果想在攔截器Filter中設置字元編碼,則無此方法,因為Filter的doFilter方法的參數類型是ServletResponse)
兩句都填上,後來終於解決了這個問題;
其實我們應該思考一下本質:
response.setContentType(“text/html;charset=UTF-8”); 目的是為了控制瀏覽器的行為,即控制瀏覽器用UTF-8進行解碼;
response.setCharacterEncoding(“UTF-8”);目的是用於response.getWriter()輸出的字元流的亂碼問題。如果是response.getOutputStream()是不需要此種解決方案的,因為這句話的意思是為了將response對象中的數據以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方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160837.html