unicode編碼java
⑴ java中默認的編碼方式是Unicode是什麼意思
這個叫全球碼.
你只需要知道,這個編碼包含了,全球所有你能想到的個個國家的字元,
都在裡面的,
所以不會出現亂碼的問題.
⑵ 編寫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();
}
}
⑶ 用java如何把unicode碼轉成漢字
java中將unicode碼轉換成漢字的方式是直接使用string類型,列印即可:
Stringascii="u4f01u4e1a";//這兩個unicode碼就是企業的
System.out.println(ascii);//列印出來
運行結果:
企業
Unicode只有一個字元集,中、日、韓的三種文字佔用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍採用的是UCS-2,它用兩個位元組來編碼一個字元, 比如漢字"經"的編碼是0x7ECF,注意字元編碼一般用十六進制來 表示,為了與十進制區分,十六進制以0x開頭,0x7ECF轉換成十進制 就是32463,UCS-2用兩個位元組來編碼字元,兩個位元組就是16位二進制, 2的16次方等於65536,所以UCS-2最多能編碼65536個字元。
⑷ java中如何輸出字元變數的Unicode編碼值
java中可以使用char類提供的charAt()方法來獲得字元的unicode的編碼值,示例如下:
(4)unicode編碼java擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
參考資料:網路-java
⑸ java使用unicode為默認編碼是什麼意思
java初學者都會接觸到一個概念,既java的默認編碼是uincode,但書上也就出現這句話而已,究竟是什麼意思就沒再說。其實對於一個程序員來說,一個平台的編碼方式是不用了解的,因為這是他內部處理字元的方式,和我們頂層設計程序是沒有多大關系(如果真要說有關系的話,一個就是你對這個平台的熟悉程度,另一個就只能是你要處理的字元奇葩到要考慮編譯器有沒有包括這個字元)。但這並不是指我們在編程的時候完全不用考慮編碼問題,恰恰相反,編碼問題是跨系統交流的基本。
那java哪裡會用到編碼問題呢?最常見的是流,下面有兩個例子。1.在linux下用java創建了一個文件(這里默認代碼里沒有指定編碼),裡麵包括英文和中文,然後在windows下同樣用java讀取這個文件,並輸出,結果中文出現了亂碼;2.android手機和電腦的兩個java程序進行類似qq的信息交流,中文都是亂碼。疑惑來了,java不是跨平台嗎,而且默認編碼就是unicode,為什麼會有編碼? 正如上面所說,java的系統編碼是管理內部變數等信息的,是統一不能變的,但上面兩個例子出現亂碼的原因在於這些字元信息是從外界讀取的,編碼方式直接影響到字元的顯示,比如gbk一個字元是1或2個位元組,中文是2個,而utf8是1到4個位元組不定,中文是3個,utf16是2個位元組固定不變,所以很明顯了,同樣位元組數的源信息可以每2個或者每3個位元組表達一個中文,不同編碼當然不同了,而且即使gbk和utf16都是兩個位元組表示一個中文,同樣的二進制也對應不同的字元。所以從外部讀取到這些byte信息後,就要指定編碼,比如new
String(byte[],charset),當然,也可以在構建流的時候就指定,像new
InputStreamReader(InputStream,charset)等,但像BufferedReader等沒有相應的構造函數,就只能把上面的InputStreamReader作為參數了。
總結:
1.String和流(包括控制台的輸出輸入)的默認編碼是根據系統而定,即jvm假設這些信息是當前系統創建的,windows默認中文是gbk,linux和mac是utf8(這里又來了,utf8和unicode是什麼意思,簡單地說,unicode是把每個字元和一個唯一的二進制碼對應的標准,而utf是unicode
transformation
format,即如何表示每個唯一的二進制碼,utf8,utf16和utf32是不同的編碼方式);
2.IDE設置的編碼方式用於存取java源文件,對於在不同系統平台上共享代碼很重要;
3.java編譯器採用utf8,即class文件的存儲是用utf8,因為相對於utf16,utf8在處理英文佔用內存小,而程序大部分都是英文;
4.jvm運行時的編碼方式是utf16,即jvm用utf8從class文件讀取程序後再轉化為utf16編碼的字元串,因為utf16是2個位元組,統一的長度更方便jvm申請數組等操作;
5.網頁大部分是用utf8編碼的,在html頭幾行有charset的信息,在對下載下來的網頁進行解析時,要注意編碼,谷歌網路在對搜索結果的解析時也是用utf8的,所以在涉及到網路時編碼問題非常重要,本人曾經栽得很慘,當然了,誰叫windows的編碼不是utf8;
6.不知大家有沒有經歷過,如果編碼弄錯了,一般只有中文會出現亂碼,而中文後面的英文是正確的,不合理啊,這不是類似多骨諾米牌嗎,一個錯了,後面不是全倒嗎。所以別小看那些制定編碼的專家,像utf8每個位元組的前幾位都用來表示一些信息,不同位元組還不一樣,而utf16也有,所以弄出了utf16le和utf16be
⑹ 在Java的基本數據類型中,char型採用 Unicode 編碼方案,其每個編碼佔用()位元組內存空間。
2個位元組。
關於char有一個特殊的語言就是char *,在C/C++中有專門的語義,既不同於signed char *,也不同於unsigned char *,專門用於指以'