編碼 - Unicode等





檢查與設定本地編碼

1️⃣ 檢查目前系統的本地編碼

Windows (cmd / PowerShell)

chcp

會顯示目前的「代碼頁 (Code Page)」:

Linux / macOS (Terminal)

locale

查看 LANGLC_CTYPE 的值,例如:

LANG=zh_TW.UTF-8
---

2️⃣ 在 C++ 程式內檢查當前編碼

#include <clocale>
#include <iostream>

int main() {
    std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}

在 Windows 通常會顯示像 CChinese (Traditional)_Taiwan.950

---

3️⃣ 設定本地編碼

Windows 命令提示字元 (cmd)

chcp 65001

→ 將命令列切換為 UTF-8。

PowerShell

$OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8

在 C++ 程式內設定

#include <clocale>

int main() {
    std::setlocale(LC_ALL, "zh_TW.UTF-8");  // 設為 UTF-8
}

或在 Windows 設定 Big5

std::setlocale(LC_ALL, "Chinese_Taiwan.950");
---

4️⃣ 建議設定



設定永久編碼

1️⃣ 問題背景

使用 chcp 65001 只能暫時改變當前命令提示字元 (cmd) 的編碼,一旦關閉視窗或重新啟動,就會恢復預設值(例如 950 Big5)。若希望讓整個系統、所有應用程式都使用 UTF-8,需在 Windows 系統層級修改「地區設定」。

---

2️⃣ 永久設定整個 Windows 使用 UTF-8

步驟一:開啟地區設定

  1. 開啟 控制台 (Control Panel)
  2. 選擇 時鐘和地區 → 地區 (Region)
  3. 切換到 管理 (Administrative) 分頁
  4. 點擊 變更系統地區設定 (Change system locale...)

步驟二:啟用 UTF-8

  1. 勾選底部的:
    ✅ Beta: 使用 Unicode UTF-8 提供全球語言支援 (Use Unicode UTF-8 for worldwide language support)
  2. 按下「確定」並重新啟動系統

重開機後,Windows Console、C++、.NET、Python 等程式的預設 locale 都會是 UTF-8。

---

3️⃣ 驗證是否生效

在 cmd 驗證

chcp

若顯示:

Active code page: 65001

即表示 UTF-8 已成為預設。

在 C++ 驗證

#include <clocale>
#include <iostream>

int main() {
    std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}
---

4️⃣ 注意事項

---

5️⃣ 替代方案(不改整系統)

如果不想全系統改成 UTF-8,可針對某些應用設定啟動參數或程式內設定:

cmd /K chcp 65001
或在程式內呼叫:
SetConsoleOutputCP(65001);
SetConsoleCP(65001);


ASCII 編碼表

ASCII Hex 對應表
0x00x10x20x30x40x50x60x70x80x90xA0xB0xC0xD0xE0xF
0x00NULSOHSTXETXEOTENQACKBELBSHTLFVTFFCRSOSI
0x10DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
0x20!"#$%&'()*+,-./
0x300123456789:;<=>?
0x40@ABCDEFGHIJKLMNO
0x50PQRSTUVWXYZ[\]^_
0x60`abcdefghijklmno
0x70pqrstuvwxyz{|}~DEL
0x80ÇüéâäàåçêëèïîìÄÅ
0x90ÉæÆôöòûùÿÖÜ¢£¥ƒ
0xA0áíóúñѪº¿¬½¼¡«»
0xB0
0xC0
0xD0
0xE0αßΓπΣσµτΦΘΩδφε
0xF0±÷°·²


所有中文字的 Unicode 範圍

Unicode 中的中文字符主要分佈在以下幾個區段。以下列出常見的中文字符(漢字)在 Unicode 表中的各範圍,以及每個範圍的詳細說明。

Unicode 範圍說明

各範圍列表

範圍名稱 Unicode 範圍 說明
CJK Unified Ideographs 4E00–9FFF 收錄基本的中文、日文和韓文字符,是最常見的中文字範圍。
CJK Unified Ideographs Extension A 3400–4DBF 擴展A區,包含較少使用的中文字符。
CJK Unified Ideographs Extension B 20000–2A6DF 擴展B區,主要涵蓋古文字符和一些罕見漢字。
CJK Unified Ideographs Extension C 2A700–2B73F 擴展C區,進一步擴充了古文字及罕見字。
CJK Unified Ideographs Extension D 2B740–2B81F 擴展D區,包含極少使用的漢字。
CJK Unified Ideographs Extension E 2B820–2CEAF 擴展E區,主要補充更多罕見的中文字符。
CJK Unified Ideographs Extension F 2CEB0–2EBEF 擴展F區,包含更罕見的古文字和漢字。
CJK Unified Ideographs Extension G 30000–3134F 擴展G區,是最新補充的中文字符區域。
CJK Compatibility Ideographs F900–FAFF 相容區,用於與舊字符集系統的相容性,例如日文字形的不同字形。

總結

以上列出的範圍包含大部分的漢字字符,並分佈在多個不同的區域以滿足不同需求,包括現代漢字、古文字及相容字符等。對於中文字體設計或字符分析來說,這些範圍提供了完整的字體支援。

Unicode Icons



  • UTF-8字元表


    email: [email protected]
    
    T:0000
    資訊與搜尋 | 回dev首頁
    email: Yan Sa [email protected] Line: 阿央
    電話: 02-27566655 ,03-5924828