java中,編碼是字節(jié)轉(zhuǎn)字符的時候產(chǎn)生的不同映射造成的差異。那我們就可以利用這一點(diǎn)實現(xiàn)。例如,我們有一個gbk編碼格式的字符串,那我們先把它的字節(jié)得到。
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計,上思網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:上思等地區(qū)。上思做網(wǎng)站價格咨詢:028-86922220
不寫代碼的話可以直接找個批量轉(zhuǎn)換文本編碼的軟件搞定。寫代碼稍微復(fù)雜一些。新建一個目錄 遍歷遞歸原工程目錄,以gbk編碼讀取,以utf8編碼寫文件到新的目錄下即可。
/target /project 先把源代碼全部用GBK格式拷貝到e:/output,然后再把output中的所有文件拷貝到原先的地方就可以。
java的String對象中不存在編碼問題,只有unicode編碼一種。所以只可能是GBK編碼的byte數(shù)組 String a= new String(byte數(shù)組,GBK); //這樣就會有標(biāo)準(zhǔn)的String,unicode的。
java不同編碼之間進(jìn)行轉(zhuǎn)換,都需要使用unicode作為中轉(zhuǎn)。
例如,我們有一個gbk編碼格式的字符串,那我們先把它的字節(jié)得到。String s = abcbyte[] b = s.getBytes();再將其轉(zhuǎn)為需要的編碼格式。
至于你的那個情況,要先用gbk編碼,然后再用utf-8解碼才能獲得正常的字符串,我估計是因為 傳輸過來的字節(jié)碼是用utf-8編碼的,假設(shè)字節(jié)碼為b。
我在程序中調(diào)用一個接口函數(shù),這個函數(shù)返回的是用UTF-8編碼的字符串,而我整個程序的輸入輸出都用的是GB18030,只能用GB18030輸出。如果直接輸出會有亂碼,想知道如何正確輸出。
代碼沒問題,檢測一下你的xml文件是否是真正的utf-8編碼的文件,不要說,xml文件內(nèi)容里聲明是utf-8編碼就是utf-8編碼。
1、爬蟲的話,爬到GB2312網(wǎng)頁的話,得到的字節(jié)流已經(jīng)是GB2312編碼了。直接new String(bytes,GB2312)即可了。輸出時,通過stream對象指定UTF-8編碼輸出就行了。
2、/target /project 先把源代碼全部用GBK格式拷貝到e:/output,然后再把output中的所有文件拷貝到原先的地方就可以。
3、charset=gb2312/改為:meta http-equiv=Content-Typecontent=text/html;charset=utf-8/然后新建一個文本文檔,把你這個頁面的所有代碼全部復(fù)制過去。然后另存為名字是你這個網(wǎng)頁的名字。切記編碼選擇utf-8。
4、不寫代碼的話可以直接找個批量轉(zhuǎn)換文本編碼的軟件搞定。寫代碼稍微復(fù)雜一些。新建一個目錄 遍歷遞歸原工程目錄,以gbk編碼讀取,以utf8編碼寫文件到新的目錄下即可。