chcp
會顯示目前的「代碼頁 (Code Page)」:
locale
查看 LANG 或 LC_CTYPE 的值,例如:
LANG=zh_TW.UTF-8
---
#include <clocale>
#include <iostream>
int main() {
std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}
在 Windows 通常會顯示像 C 或 Chinese (Traditional)_Taiwan.950。
chcp 65001
→ 將命令列切換為 UTF-8。
$OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8
#include <clocale>
int main() {
std::setlocale(LC_ALL, "zh_TW.UTF-8"); // 設為 UTF-8
}
std::setlocale(LC_ALL, "Chinese_Taiwan.950");
---
UTF-8。SetConsoleOutputCP(65001); // 設定輸出為 UTF-8
SetConsoleCP(65001); // 設定輸入為 UTF-8
使用 chcp 65001 只能暫時改變當前命令提示字元 (cmd) 的編碼,一旦關閉視窗或重新啟動,就會恢復預設值(例如 950 Big5)。若希望讓整個系統、所有應用程式都使用 UTF-8,需在 Windows 系統層級修改「地區設定」。
重開機後,Windows Console、C++、.NET、Python 等程式的預設 locale 都會是 UTF-8。
---chcp
若顯示:
Active code page: 65001
即表示 UTF-8 已成為預設。
#include <clocale>
#include <iostream>
int main() {
std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}
---
如果不想全系統改成 UTF-8,可針對某些應用設定啟動參數或程式內設定:
cmd /K chcp 65001
或在程式內呼叫:
SetConsoleOutputCP(65001);
SetConsoleCP(65001);
| 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | 0x8 | 0x9 | 0xA | 0xB | 0xC | 0xD | 0xE | 0xF | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
| 0x10 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
| 0x20 | ␣ | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
| 0x30 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 0x40 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 0x50 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
| 0x60 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 0x70 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
| 0x80 | Ç | ü | é | â | ä | à | å | ç | ê | ë | è | ï | î | ì | Ä | Å |
| 0x90 | É | æ | Æ | ô | ö | ò | û | ù | ÿ | Ö | Ü | ¢ | £ | ¥ | ₧ | ƒ |
| 0xA0 | á | í | ó | ú | ñ | Ñ | ª | º | ¿ | ⌐ | ¬ | ½ | ¼ | ¡ | « | » |
| 0xB0 | ░ | ▒ | ▓ | │ | ┤ | ╡ | ╢ | ╖ | ╕ | ╣ | ║ | ╗ | ╝ | ╜ | ╛ | ┐ |
| 0xC0 | └ | ┴ | ┬ | ├ | ─ | ┼ | ╞ | ╟ | ╚ | ╔ | ╩ | ╦ | ╠ | ═ | ╬ | ╧ |
| 0xD0 | ╨ | ╤ | ╥ | ╙ | ╘ | ╒ | ╓ | ╫ | ╪ | ┘ | ┌ | █ | ▄ | ▌ | ▐ | ▀ |
| 0xE0 | α | ß | Γ | π | Σ | σ | µ | τ | Φ | Θ | Ω | δ | ∞ | φ | ε | ∩ |
| 0xF0 | ≡ | ± | ≥ | ≤ | ⌠ | ⌡ | ÷ | ≈ | ° | ∙ | · | √ | ⁿ | ² | ■ |
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 | 相容區,用於與舊字符集系統的相容性,例如日文字形的不同字形。 |
以上列出的範圍包含大部分的漢字字符,並分佈在多個不同的區域以滿足不同需求,包括現代漢字、古文字及相容字符等。對於中文字體設計或字符分析來說,這些範圍提供了完整的字體支援。
email: [email protected]