chcp
現在のコード ページが表示されます。
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 <クロカレ>
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ビッグ5)。システム全体とすべてのアプリケーションで UTF-8 を使用する場合は、Windows システム レベルで「地域設定」を変更する必要があります。
再起動後、Windows コンソール、C++、.NET、Python およびその他のプログラムのデフォルトのロケールは 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);
Unicode エスケープ シーケンスは、純粋な ASCII 文字を使用して Unicode 文字を表現する方法です。 プログラミング言語のソース コード、JSON、文字列定数、およびクロスプラットフォーム データ交換でよく使用されます。 この表記は、環境によって特定の文字を直接入力または表示できない場合に使用されます。
最も一般的な形式は次のとおりです\uXXXX、でXXXX4桁の16進数です。
Unicode コードポイントを表します。
\u0041 → A\u00E9 → é\u4E2D→中一部の言語(Pythonなど)でサポートされています\UXXXXXXXX、8 桁の 16 進数を使用して、
すべての Unicode コード ポイントを直接表現できます。
\U0001F600 → 😀16 ビット Unicode のみをサポートする環境 (JavaScript レガシー仕様など) では、
超えるU+FFFF文字にはサロゲート ペアが必要です。
\uD83D\uDE00 → 😀JavaScript
const s = "\u4E2D\u6587";
Python
s = "\u4E2D\u6587"
s2 = "\U0001F600"
JSON
{
"text": "\u4E2D\u6587"
}
URL エンコーディング (パーセント エンコーディングとも呼ばれる) は、文字を URL で安全に使用できる表現に変換する方法です。 URL では特定の ASCII 文字のみが許可され、残りはパーセントと 16 進数に変換する必要があります。
エンコード形式は%HH、でHHこの文字のバイト値を 16 進数で表現したものです。
UTF-8 で文字が複数バイトを占める場合、それらは個別にエンコードされます。
%20%21%E4%B8%ADURL 内の一部の文字は特別なセマンティクスを持ち、予約文字と呼ばれます。 エンコードが必要かどうかは、エンコードが使用される場所によって異なります。
:/?&=#次の文字は、エンコードせずに URL で直接使用できます。
- _ . ~JavaScript
encodeURIComponent("中国語テスト")
decodeURIComponent("%E4%B8%AD%E6%96%87%20test")
Python
urllib.parse から引用符をインポート、引用符を外す
quote("中国語テスト")
unquote("%E4%B8%AD%E6%96%87%20test")
存在するapplication/x-www-form-urlencodedフォーマットでは、
空白文字は次のようにエンコードされます。+、 それよりも%20。
Still used in general URL paths%20。
16 進エスケープは、16 進数を使用して文字を表す方法です。 特定のバイトまたは ASCII 文字を表すために、プログラミング言語の文字列定数でよく使用されます。
最も一般的な形式は次のとおりです\xHH、でHHは 2 桁の 16 進数です。
バイト値を表し、通常は ASCII またはシングルバイト文字に対応します。
\x41 → A\x61 → a\x0A→改行16 進エスケープはほとんどの場合、単一バイト配列でのみ機能します。
UTF-8 でエンコードされたマルチバイト文字を使用する場合は、それらを複数に分割する必要があります。\xHH。
\xE4\xB8\xADC / C++
char c = '\x41';
JavaScript
const s = "\x48\x65\x6C\x6C\x6F";
Python
s = "\x48\x65\x6C\x6C\x6F"
| 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 テーブル内の一般的な中国語文字 (Hanzi) の範囲と、各範囲の詳細な説明を示します。
| スコープ名 | 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]