char既然代表了一个字符,就应该能存放所有的字符才对呀,加上乱七八糟的各国语言字符,总不能char只能存放 中日韩的单个字符吧?
PHPz2017-04-17 17:48:01
Java 才用的是 Unicode 編碼,所以 char 可以存中文,Unicode 是什麼呢?
Unicode(中文:萬國碼、國際碼、統一碼、單碼)是電腦科學領域裡的業界標準。它對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更簡單的方式來呈現和處理文字。
Unicode伴隨著通用字元集的標準而發展,同時也以書本的形式[1]對外發表。 Unicode至今仍在不斷增修,每個新版本都加入更多新的字元。目前最新的版本為2015年6月17日公佈的8.0.0[1],已收入超過十萬個字元(第十個字元在2005年獲採納)。 Unicode涵蓋的資料除了視覺上的字形、編碼方法、標準的字元編碼外,還包含了字元特性,例如大小寫字母。
以上來至於維基百科 unicode-維基百科
以上不難看出Unicode 裡面的東西不是白來的,需要Unicode 的組織去收錄,而現在僅僅收錄了一些中日韓的字符,而且也不一定收錄齊全,然後Java 又是使用的Unicode 所以只要Unicode組織收錄了Java 就會支援這些字元。
答得不怎麼好。
阿神2017-04-17 17:48:01
當utf-8不夠時,還有utf-16
http://baike.baidu.com/link?url=nkV9FQlo3zIu25zKLF3M1Pjp3Y6377hPnesTlnNqHb19cbkdV4P6JX9_FtCWPQ97j7BukgEZ0TBb66uqEn8rpK
黄舟2017-04-17 17:48:01
char使用2個位元組儲存的,因為字元+標點用2個位元組表示字元綽綽有餘,但是如果加上其它非英文體系的文字,中文等可能就不夠,如果用4個位元組表示一個字元呢,能表示的範圍就會擴大,8個位元組理論上也是可以的
Unicode字元集標準就應運而生了
java中字元使用Unicode編碼,16位元