首頁 >Java >java教程 >Java 程式碼中出現菱形亂碼?

Java 程式碼中出現菱形亂碼?

Guanhui
Guanhui原創
2020-06-08 09:47:003723瀏覽

Java 程式碼中出現菱形亂碼?

Java 程式碼中出現菱形亂碼?

Java程式碼中出現菱形亂碼,一般情況是因為字元集問題,例如Java檔案是GBK編碼的,但是編輯用UTF-8編碼開啟這個Java檔案就顯示這種亂碼,解決方法:將編輯器的編碼改為和Java檔案一致的編碼即可。

編碼

#編碼是訊息從一種形式或格式轉換為另一種形式的過程,也稱為電腦程式語言的代碼簡稱編碼。用預先規定的方法將文字、數字或其它物件編成數碼,或將資訊、資料轉換成規定的電脈衝訊號。編碼在電子電腦、電視、遙控器和通訊等方面廣泛使用。編碼是訊息從一種形式或格式轉換為另一種形式的過程。解碼,是編碼的逆過程。

GB編碼標準中,比較常用的是GB2312和GBK兩種,GB2312是GBK的一個子集,GB2312編碼範圍是0xA1A1 - 0xFEFE ,如果純粹的GB2312編碼,處理起來是十分簡單的,但處理GBK字元集時有些小的提示,先說說GBK編碼的標準吧:

GBK 採用雙位元組表示,總體編碼範圍為8140-FEFE,首字節在81-FE 之間,尾位元組在40-FE 之間,剔除xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個。

編碼分類

1. 漢字區。包括:

a. GB 2312 漢字區。即 GBK/2: B0A1-F7FE。收錄 GB 2312 漢字 6763 個,依原順序排列。

b. GB 13000.1 擴充漢字區。包括:

(1) GBK/3: 8140-A0FE。收錄 GB 13000.1 中的 CJK 漢字 6080 個。

(2) GBK/4: AA40-FEA0。收錄 CJK 漢字和增補的漢字 8160 個。

CJK 漢字在前,按 UCS 程式碼大小排列;增補的漢字(包括部首和構件)在後,按《康熙字典》的頁碼/字位排列。

2. 圖形符號區。包括:

a. GB 2312 非漢字符號區。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符號外,

還有 10 個小寫羅馬數字和 GB 12345 增補的符號。計號 717 個。

b. GB 13000.1 擴充非漢字區。即 GBK/5: A840-A9A0。 BIG-5 非漢字符號、結構符號和「○」排列在此區。計符號 166 個。

3. 使用者自訂區:分為(1)(2)(3)三個小區。

(1) AAA1-AFFE,碼位 564 個。

(2) F8A1-FEFE,碼位 658 個。

(3) A140-A7A0,碼位 672 個。

第(3)區儘管對使用者開放,但限制使用,因為不排除未來在此區域增補新字元的可能性。

這裡有幾個小技巧:

一、在php中,字元編碼是按所發送的編碼為準的,因此使用的就是使用者輸入的編碼,不會自動改變,但在asp中,預設的編碼是unicode,這樣我們很容易就能得到gbk->unicode的編碼對照表,這樣即使在毫無基礎庫的情況下也能很容易的實現gbk到utf-8的轉換了;

二、由於GBK是高位最低數值是0x40,即是64,因此,有時候組織一些涉及中文的字符串時,分割字符最好用64之前的ascii碼,這樣在任何情況下替換或分割都不會出現亂碼,比較常用的是","、";"、":"、" "、" "、" ",這些字元永遠不會為gb編碼添亂

推薦教學:《Java教學

以上是Java 程式碼中出現菱形亂碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn