1、Java中,【String.getBytes(String decode)】的方法,會(huì)根據(jù)指定的decode,編碼返回某字符串在該編碼下的byte數(shù)組表示,例如:
為古雷港等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及古雷港網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、古雷港網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1")
上面三行代碼表示:分別返回“中”這個(gè)漢字在GBK、UTF-8和ISO8859-1編碼下的byte數(shù)組表示,此時(shí)b_gbk的長(zhǎng)度為2,b_utf8的長(zhǎng)度為3,b_iso88591的長(zhǎng)度為1。
2、而通過【new String(byte[], decode)】的方式來還原這個(gè)“中”字時(shí),實(shí)際是使用decode指定的編碼來將byte[ ]解析成字符串,例如:
String s_gbk = new String(b_gbk,"GBK");
String s_utf8 = new String(b_utf8,"UTF-8");
String s_iso88591 = new String(b_iso88591,"ISO8859-1");
s_gbk和s_utf8都是“中”,而只有s_iso88591是一個(gè)不認(rèn)識(shí) 的字符,因?yàn)镮SO8859-1編碼的編碼表中,根本就沒有包含漢字字符,當(dāng)然也就無(wú)法通過"中".getBytes("ISO8859-1")。
因此,通過【String.getBytes(String decode)】方法來得到byte[ ]時(shí),要確定decode的編碼表中確實(shí)存在String表示的碼值,這樣得到的byte[ ]數(shù)組才能正確被還原。
擴(kuò)展資料
java中文編碼避免亂碼
1、為了讓中文字符適應(yīng)某些特殊要求(如http header頭要求其內(nèi)容必須為iso8859-1編碼),可能會(huì)通過將中文字符按照字節(jié)方式來編碼的情況,比如:
String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1")
2、上述例子中的s_iso8859-1字符串實(shí)際是三個(gè)在 ISO8859-1中的字符,在將這些字符傳遞到目的地后,目的地程序再通過相反的方式:
String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")
來得到正確的中文漢字。這樣就既保證了遵守協(xié) 議規(guī)定、也支持中文。
3、String.getBytes(String decode)方法會(huì)根據(jù)指定的decode編碼返回某字符串在該編碼下的byte數(shù)組表示這里是encode ,not decode,從字符串到字節(jié)數(shù)組是編碼的過程,從字節(jié)數(shù)組到字符串(即 new String(byte[] , charsetname))才是解碼的過程。
參考資料:百度百科-UTF-8
你的黑窗口的編碼格式是GBK的,所以你寫的java文件也要弄成這個(gè)格式,你是用軟件
編寫的吧?你在新建一個(gè)txt粘進(jìn)去,然后在改為java格式就好了,你可以看看那個(gè)關(guān)于一些黑窗口格式設(shè)置的網(wǎng)頁(yè),網(wǎng)上找找,有很多呢
您好,將別人的項(xiàng)目或JAVA文件導(dǎo)入到自己的Eclipse中時(shí),常常會(huì)出現(xiàn)JAVA文件的中文注釋變成亂碼的情況,主要原因就是別人的IDE編碼格式和自己的Eclipse編碼格式不同。
總結(jié)網(wǎng)上的建議和自己的體會(huì),可以參考以下幾種解決方式:
1
改變整個(gè)文件類型的編碼格式
1)
eclipse-window-preferences-General-Content
Types
2)
找到要修改的文件的類型(JAVA,JSP等等),在下面有個(gè)Default
encoding,在輸入框中輸入GBK
3)
點(diǎn)擊Update
4)
點(diǎn)擊OK
5)
重啟eclipse
2
改變整個(gè)Eclipse工作空間的編碼格式
1)
eclipse-window-preferences-General-workspaceTypes
2)
改變文本文件編碼格式為GBK
3
改變單個(gè)文件的編碼格式
,在包資源管理器右鍵點(diǎn)擊文件-屬性,改變文本文件編碼格式為GBK
4
如果以上幾種方式仍不能解決,可以下面這個(gè)不得已的辦法:
用Editplus打開要轉(zhuǎn)碼的文件,如果在Editplus中沒有亂碼,可直接將文件內(nèi)容拷貝到Eclipse中,如果Editplus也有亂碼,可先
在Editplus轉(zhuǎn)碼,Editplus-文檔-文件編碼方式-改變文件編碼方式-GBK,然后再用Eclipse打
開就可以了。
5,打開Eclipse,有時(shí)候會(huì)出現(xiàn)中文注釋亂碼,這是因?yàn)镋clipse中對(duì)Text
file
encoding的默認(rèn)編碼是GBK,因此,右鍵點(diǎn)擊你的“工程”,將Info中的“Text
file
encoding”中的Other改為UTF-8,即可!