搜尋

首頁  >  問答  >  主體

Java中char只有两个字节,总共才6万多个数值,如何表示所有的汉子?并且我测试了也可以存放日语的一个字或者韩语的

char既然代表了一个字符,就应该能存放所有的字符才对呀,加上乱七八糟的各国语言字符,总不能char只能存放 中日韩的单个字符吧?

高洛峰高洛峰2887 天前427

全部回覆(3)我來回復

  • PHPz

    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 就會支援這些字元。
    答得不怎麼好。

    回覆
    0
  • 阿神

    阿神2017-04-17 17:48:01

    當utf-8不夠時,還有utf-16

    http://baike.baidu.com/link?url=nkV9FQlo3zIu25zKLF3M1Pjp3Y6377hPnesTlnNqHb19cbkdV4P6JX9_FtCWPQ97j7BukgEZ0TBb66uqEn8rpK

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:48:01

    char使用2個位元組儲存的,因為字元+標點用2個位元組表示字元綽綽有餘,但是如果加上其它非英文體系的文字,中文等可能就不夠,如果用4個位元組表示一個字元呢,能表示的範圍就會擴大,8個位元組理論上也是可以的
    Unicode字元集標準就應運而生了

    java中字元使用Unicode編碼,16位元

    回覆
    0
  • 取消回覆