java中文編碼
1. java程序執行中文亂碼如何解決
看你編譯沒問題,運行時報亂碼錯誤。說明是代碼的編碼跟DOS系統的編碼不一致。
DOS系統是ASCII碼,你看一下你代碼的編碼是什麼,應該不是ASCII碼,你把你的代碼編碼轉換成ASCII碼試試先,不行再轉成UTF-8試試,這樣應該就解決了(如果是編碼不一致的問題的話)
2. java中編碼與解碼分別指什麼
java中編碼:URLEncoder.encode(strUri,"utf-8");
java中解碼碼:URLDecoder.decode(strUri,"utf-8");
3. 如何解決Java中的中文亂碼問題
如果你的項目編碼是utf-8的話,右鍵項目properties-->Resource-->others 下拉框改為utf-8。望採納:)
4. java採用什麼字元集
Java語言所使用的字元集是16位Unicode編碼。另外再介紹一些常見的字元集:
1、最早在dos下寫pascal的時候,就遇到ASCII字元集,後來還是dos下寫c,也是ascii字元集
特點:目前最通用的單位元組編碼字元集
表示:單位元組
最早ascii用7bit表示,總共能表示2^7=128個字元,後來擴展到8bit,就表示2^8=256個字元
2、GB2312又稱為GB2312-80字元集,全稱為《信息交換用漢字編碼字元集·基本集》,由原中國國家標准總局發布,1981年5月1日實施。
特點:當然是能表示99%的中國漢字,還包括拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母等
表示:雙位元組
3、GBK是漢字編碼標准之一,全稱《漢字內碼擴展規范》,GBK 向下與GB2312編碼兼容,向上支持ISO10646.1國際標准。可以認為GBK是在GB2313基礎上通過內碼擴展出來的一個標准。
特點:完全兼容GB2312標准,支持國際標准ISO/IEC10646-1和國家標准GB13000-1中的全部中日韓漢字,並包含了BIG5編碼中的所有漢字
表示:雙位元組
4、Big5,台灣那邊使用比較多。
5、GB 18030,全稱是GB18030-2000《信息交換用漢字編碼字元集基本集的擴充》,是我國政府於2000年3月17日發布的新的漢字編碼國家標准,2001年8月31日後在中國市場上發布的軟體必須符合本標准。
特點:就是強大。覆蓋中文、日文、朝鮮語和中國少數民族文字。滿足中國大陸、香港、台灣、日本和韓國等東亞地區信息交換多文種、大字量、多用途、統一編碼格式的要求。並且與Unicode 3.0版本兼容,填補Unicode擴展字元字匯「統一漢字擴展A」的內容。並且與以前的國家字元編碼標准(GB2312,GB13000.1)兼容。
表示:單位元組、雙位元組、四位元組三種方式
6、Unicode野心更大(當然有一個國際統一標准當然是好事)
特點:Unicode是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一並且唯一的二進制編碼,以滿足跨語言、跨平台進行文本轉換、處理的要求。
表示:utf-8,utf-16,utf-32
這里可能有點不好理解,舉個例子
首先,把unicode理解成對所有字元做了一個統一的編號,比如:「字」這個字元,編號是23383,這個是unicode定義的
但是,在計算機中,如何存儲這個編號呢?方式就有很多,存儲unicode的方式,就是utf-8,utf-16,utf-32
23383數值的16進製表示:0x5b57
utf-8用3個位元組來表示漢字,所以utf-8的表示為:0xE5AD97
utf-16用2個位元組來表示漢字,所以utf-16的表示為:0x5b57 剛好和數值是一樣的
utf-32用4個位元組來表示漢字,所以utf-32的表示為:0x00005b57 和數值是一樣的,不過浪費空間
7、再來講講utf-8,它是一種變長的字元集
表示:單位元組來表示字母,雙位元組來表示一些希臘字母,三位元組來表示漢字,當然也有四位元組的
這么做當然會增加表示和識別的難度,不過,可以節省空間。這也是為什麼utf-8在網路編碼中流行的原因。
5. java中文亂碼,能說下string.getBytes()和new String()轉碼是,具體點。
1、Java中,【String.getBytes(String decode)】的方法,會根據指定的decode,編碼返回某字元串在該編碼下的byte數組表示,例如:
byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1")
上面三行代碼表示:分別返回「中」這個漢字在GBK、UTF-8和ISO8859-1編碼下的byte數組表示,此時b_gbk的長度為2,b_utf8的長度為3,b_iso88591的長度為1。
2、而通過【new String(byte[], decode)】的方式來還原這個「中」字時,實際是使用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是一個不認識 的字元,因為ISO8859-1編碼的編碼表中,根本就沒有包含漢字字元,當然也就無法通過"中".getBytes("ISO8859-1")。
因此,通過【String.getBytes(String decode)】方法來得到byte[ ]時,要確定decode的編碼表中確實存在String表示的碼值,這樣得到的byte[ ]數組才能正確被還原。
(5)java中文編碼擴展閱讀
java中文編碼避免亂碼
1、為了讓中文字元適應某些特殊要求(如http header頭要求其內容必須為iso8859-1編碼),可能會通過將中文字元按照位元組方式來編碼的情況,比如:
String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1")
2、上述例子中的s_iso8859-1字元串實際是三個在 ISO8859-1中的字元,在將這些字元傳遞到目的地後,目的地程序再通過相反的方式:
String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")
來得到正確的中文漢字。這樣就既保證了遵守協 議規定、也支持中文。
3、String.getBytes(String decode)方法會根據指定的decode編碼返回某字元串在該編碼下的byte數組表示這里是encode ,not decode,從字元串到位元組數組是編碼的過程,從位元組數組到字元串(即 new String(byte[] , charsetname))才是解碼的過程。
6. java 中文亂碼問題 utf-8和gbk的區別
Java中UTF-8轉GBK之所以不會出現中文亂碼,是因為UTF-8編碼為兼容性最大的字元集編碼,它本身就支持中文字元。
Java代碼轉碼範例:
String s = new String(ss.getBytes(),"GBK");
當你的內容本來就是正常的中文字元時,通過上面的語句轉為GBK編碼是不會有任何問題的,但如果你在轉碼之前的字元不是正確的中文字元,或者不是支持中文字元的字元集,那可能就會出現亂碼問題。
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。UTF-8用1到6個位元組編碼UNICODE字元。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
在Java開發中,特別是web開發,亂碼是一種很常見而且很頭疼的問題,這常常是由於頁面端、服務端、資料庫等幾處所使用的字元不一致所致,故開發中,保持編碼一致, 往往能減少由於亂碼而帶來的時間浪費,是一件非常重要的事情。
7. java代碼中文亂碼怎麼解決方法
解決亂碼問題:可以修改eclipse里的編碼格式來解決亂碼問題:
1、window-->
Preference
2、點擊General-->Workspace,在右面的窗體找到「Text
file
encoding」,就可以修改編碼格式了
8. 編寫JAVA程序輸出中文字的unicode編碼
我寫的,你試試,你可以把它改寫成循環的,可以一直把字元的Unicode輸出,完善後發給我哈:
import java.io.*;
public class FindUnicode {
public static void main(String[] args) throws IOException{
InputStreamReader read = new InputStreamReader (System.in);
int ch = read.read();
System.out.print("\\u"+Integer.toHexString(ch));
read.close();
}
}
9. eclipse java代碼中文亂碼怎麼解決
您好,將別人的項目或JAVA文件導入到自己的Eclipse中時,常常會出現JAVA文件的中文注釋變成亂碼的情況,主要原因就是別人的IDE編碼格式和自己的Eclipse編碼格式不同。
總結網上的建議和自己的體會,可以參考以下幾種解決方式:
1
改變整個文件類型的編碼格式
1)
eclipse->window->preferences->General->Content
Types
2)
找到要修改的文件的類型(JAVA,JSP等等),在下面有個Default
encoding,在輸入框中輸入GBK
3)
點擊Update
4)
點擊OK
5)
重啟eclipse
2
改變整個Eclipse工作空間的編碼格式
1)
eclipse->window->preferences->General->workspaceTypes
2)
改變文本文件編碼格式為GBK
3
改變單個文件的編碼格式
,在包資源管理器右鍵點擊文件->屬性,改變文本文件編碼格式為GBK
4
如果以上幾種方式仍不能解決,可以下面這個不得已的辦法:
用Editplus打開要轉碼的文件,如果在Editplus中沒有亂碼,可直接將文件內容拷貝到Eclipse中,如果Editplus也有亂碼,可先
在Editplus轉碼,Editplus->文檔->文件編碼方式->改變文件編碼方式->GBK,然後再用Eclipse打
開就可以了。
5,打開Eclipse,有時候會出現中文注釋亂碼,這是因為Eclipse中對Text
file
encoding的默認編碼是GBK,因此,右鍵點擊你的「工程」,將Info中的「Text
file
encoding」中的Other改為UTF-8,即可!