新聞中心
java程序執(zhí)行中文亂碼如何解決
看你編譯沒問題,運(yùn)行時(shí)報(bào)亂碼錯(cuò)誤。說明是代碼的編碼跟DOS系統(tǒng)的編碼不一致。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺(tái)小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了朝陽縣免費(fèi)建站歡迎大家使用!
DOS系統(tǒng)是ASCII碼,你看一下你代碼的編碼是什么,應(yīng)該不是ASCII碼,你把你的代碼編碼轉(zhuǎn)換成ASCII碼試試先,不行再轉(zhuǎn)成UTF-8試試,這樣應(yīng)該就解決了(如果是編碼不一致的問題的話)
Java代碼出現(xiàn)了亂碼怎么辦?
運(yùn)行java帶有中文的代碼就出現(xiàn)亂碼,解決方式如下:
設(shè)置整個(gè)java工程的編碼格式為utf-8,如下圖:
設(shè)置html的編碼格式為utf-8
IDEA 編譯java后中文亂碼怎么解決
方法一:設(shè)置
request
和
response
的編碼
[
頁面編碼必須為
u8
]
request.setcharacterencoding("utf-8");//傳值編碼
response.setcontenttype("text/html;charset=utf-8");//設(shè)置傳輸編碼
方法二:
string
str1=傳來的數(shù)據(jù)。
string
ss=new
string(str1.getbytes("iso-8859-1"),"utf-8");
//轉(zhuǎn)碼utf8
JAVA讀寫文件,如何避免中文亂碼
1、你要將所有的文件的編碼都設(shè)置成UTF-8,還有,你的MyEclipse或者Eclipse應(yīng)該配置jsp還有java文件還有項(xiàng)目都設(shè)置為UTF-8.
2、eclipse 中使用模板新建 JSP,xhtml等 文件時(shí),默認(rèn)的編碼為:ISO-8859-1。?ISO-8859-1 編碼對(duì)于中文的顯示是不支持的,如果要支持簡體中文,則編碼方式應(yīng)為 GBK 或者 GB2312 或者 UTF-8(推薦) 等。右鍵菜單欄window -- preferences -- 在type filter text中輸入jsp; --?選擇下面的jsp - 選擇creating files組中的encoding 為UTF-8編碼就可以了
如果要使新建立工程、java文件直接使UTF-8則需要做以下工作:?
1、windows-Preferences...打開"首選項(xiàng)"對(duì)話框,左側(cè)導(dǎo)航樹,導(dǎo)航到general-Workspace,右側(cè) Text file encoding,選擇Other,改變?yōu)閁TF-8,以后新建立工程其屬性對(duì)話框中的Text file encoding即為UTF-8。
2、windows-Preferences...打開"首選項(xiàng)"對(duì)話框,左側(cè)導(dǎo)航樹,導(dǎo)航到general-Content Types,右側(cè)Context Types樹,點(diǎn)開Text,選擇Java Source File,在下面的Default encoding輸入框中輸入U(xiǎn)TF-8,點(diǎn)Update,則設(shè)置Java文件編碼為UTF-8。其他java應(yīng)用開發(fā)相關(guān)的文件 如:properties、XML等已經(jīng)由Eclipse缺省指定,分別為ISO8859-1,UTF-8,如開發(fā)中確需改變編碼格式則可以在此指定。
java 獲取網(wǎng)頁源代碼---有效防止亂碼
前段時(shí)間做過這類功能,如何有效防止亂碼,我們必須先知道一個(gè)網(wǎng)頁的編碼方式,是utf-8,還是gbk。
1.HttpURLConnection.getContentType();直接讀取,效率高,但有很多時(shí)候讀不到。只是text/html就完事了,沒有charset.
2.使用第三方的HttpClient,執(zhí)行效率較高。但讀取網(wǎng)頁頭header也只適用部分站,很多網(wǎng)站服務(wù)段不設(shè)置,結(jié)果就讀成了null.
3.最沒有效率的判斷方法就是使用inputStreamReader先把正頁的html源碼讀取出來,之后截取charset后面編碼。得到編碼之后重新再讀取一遍。但是效率很低。
做個(gè)總結(jié):
/**
* 取得頁面編碼
*
* @param url
* @return
*/
public String getCharset(String url) throws Exception {
// log.info("進(jìn)入讀頁面的關(guān)鍵詞:" + keyword);
String charset = "";
int c;
HttpURLConnection httpurlcon = null;
// log.info("url:"+url);
// log.info("charset:"+charset);
log.info("url:" + url);
URL httpurl = new URL(url);
// System.out.println(url+str);
httpurlcon = (HttpURLConnection) httpurl.openConnection();
// google需要身份
httpurlcon.setRequestProperty("User-agent", "Mozilla/4.0");
charset = httpurlcon.getContentType();
log.info("charset1:" + charset);
// 如果可以找到
if (charset.indexOf("charset=") != -1)
charset = charset.substring(charset.indexOf("charset=")
+ "charset=".length(), charset.length());
// 否則讀取response.Header頭
else {
charset = this.getContentCharset();
log.info("charset2:" + charset);
}
// 如果charset還是為空,那么直接讀網(wǎng)頁來截取
if (charset == null) {
charset = this.readPageCharset(url);
log.info("charset31:" + charset);
}
return charset;
}
分享題目:java編譯代碼防止亂碼,java程序亂碼怎么解決
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/heesph.html