chcp
Die aktuelle Codepage wird angezeigt:
locale
ÜberprüfenLANGoderLC_CTYPEWert, zum Beispiel:
LANG=zh_TW.UTF-8
---
#include <clocale>
#include <iostream>
int main() {
std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}
Unter Windows wird normalerweise etwas wie angezeigtCoderChinese (Traditional)_Taiwan.950。
chcp 65001
→ Befehlszeile auf UTF-8 umstellen.
$OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8
#include <clocale>
int main() {
std::setlocale(LC_ALL, "zh_TW.UTF-8"); // Auf UTF-8 setzen
}
std::setlocale(LC_ALL, "Chinese_Taiwan.950");
---
UTF-8。SetConsoleOutputCP(65001); //Setzen Sie die Ausgabe auf UTF-8
SetConsoleCP(65001); //Eingabe auf UTF-8 setzen
verwendenchcp 65001Sie können die Zeichenkodierung der aktuellen Eingabeaufforderung (cmd) nur vorübergehend ändern. Sobald das Fenster geschlossen oder neu gestartet wird, wird der Standardwert wiederhergestellt (z. B.950Big5). Wenn Sie möchten, dass das gesamte System und alle Anwendungen UTF-8 verwenden, müssen Sie die „Regionalen Einstellungen“ auf Windows-Systemebene ändern.
Nach dem Neustart ist das Standardgebietsschema der Windows-Konsole, von C++, .NET, Python und anderen Programmen UTF-8.
---chcp
Falls angezeigt:
Active code page: 65001
Dies bedeutet, dass UTF-8 zum Standard geworden ist.
#include <clocale>
#include <iostream>
int main() {
std::cout << "Current locale: " << std::setlocale(LC_ALL, nullptr) << std::endl;
}
---
Wenn Sie nicht möchten, dass das gesamte System auf UTF-8 umgestellt wird, können Sie für bestimmte Anwendungen Startparameter oder programminterne Einstellungen festlegen:
cmd /K chcp 65001
Oder rufen Sie im Programm auf:SetConsoleOutputCP(65001);
SetConsoleCP(65001);
Die Unicode-Escape-Sequenz ist eine Methode zur Darstellung von Unicode-Zeichen mithilfe reiner ASCII-Zeichen. Wird häufig im Quellcode von Programmiersprachen, JSON, String-Konstanten und dem plattformübergreifenden Datenaustausch verwendet. Diese Notation wird verwendet, wenn die Umgebung ein bestimmtes Zeichen nicht direkt eingeben oder anzeigen kann.
Das gebräuchlichste Format ist\uXXXX,InXXXXist eine 4-stellige Hexadezimalzahl,
Stellt einen Unicode-Codepunkt dar.
\u0041 → A\u00E9 → é\u4E2D→ mittelUnterstützt von einigen Sprachen (z. B. Python)\UXXXXXXXX, mit 8 hexadezimalen Ziffern,
Alle Unicode-Codepunkte können direkt dargestellt werden.
\U0001F600 → 😀In Umgebungen, die nur 16-Bit-Unicode unterstützen (z. B. die JavaScript-Legacy-Spezifikation),
überschreitenU+FFFFDie Zeichen erfordern ein Ersatzpaar.
\uD83D\uDE00 → 😀JavaScript
const s = "\u4E2D\u6587";
Python
s = "\u4E2D\u6587"
s2 = "\U0001F600"
JSON
{
"text": "\u4E2D\u6587"
}
URL-Kodierung (auch bekannt als Prozentkodierung) ist eine Möglichkeit, Zeichen in eine Darstellung umzuwandeln, die für die Verwendung in URLs sicher ist. URLs erlauben nur bestimmte ASCII-Zeichen, der Rest muss in Prozent plus Hexadezimal umgewandelt werden.
Das Codierungsformat ist%HH,InHHIst die hexadezimale Darstellung des Bytewerts dieses Zeichens.
Wenn Zeichen unter UTF-8 mehrere Bytes belegen, werden sie separat codiert.
%20%21%E4%B8%ADEinige Zeichen in URLs haben eine besondere Semantik und werden als reservierte Zeichen bezeichnet. Ob eine Kodierung erforderlich ist, hängt davon ab, wo sie verwendet wird.
:/?&=#Die folgenden Zeichen können ohne Kodierung direkt in URLs verwendet werden.
- _ . ~JavaScript
encodeURIComponent("Chinesischer Test")
decodeURIComponent("%E4%B8%AD%E6%96%87%20test")
Python
aus urllib.parse import quote, unquote
quote("Chinesisch-Test")
unquote("%E4%B8%AD%E6%96%87%20test")
existierenapplication/x-www-form-urlencodedIm Format
Leerzeichen werden als kodiert+, statt%20.
Wird immer noch in allgemeinen URL-Pfaden verwendet%20。
Hexadezimal-Escapezeichen sind eine Möglichkeit, hexadezimale Zahlen zur Darstellung von Zeichen zu verwenden. Wird häufig in Zeichenfolgenkonstanten in Programmiersprachen verwendet, um bestimmte Bytes oder ASCII-Zeichen darzustellen.
Das gebräuchlichste Format ist\xHH,InHHist eine zweistellige Hexadezimalzahl,
Stellt einen Bytewert dar, der normalerweise ASCII oder einem einzelnen Bytezeichen entspricht.
\x41 → A\x61 → a\x0A→ ZeilenvorschubHexadezimale Escapes funktionieren meist nur mit Einzelbyte-Arrays,
Wenn Sie UTF-8-codierte Multibyte-Zeichen verwenden, müssen Sie diese in mehrere aufteilen\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 | ≡ | ± | ≥ | ≤ | ⌠ | ⌡ | ÷ | ≈ | ° | ∙ | · | √ | ⁿ | ² | ■ |
Chinesische Schriftzeichen in Unicode werden hauptsächlich in den folgenden Abschnitten behandelt. Im Folgenden werden die Bereiche gebräuchlicher chinesischer Schriftzeichen (Hanzi) in der Unicode-Tabelle sowie detaillierte Beschreibungen der einzelnen Bereiche aufgeführt.
| Bereichsname | Unicode-Bereich | veranschaulichen |
|---|---|---|
| CJK Unified Ideographs | 4E00–9FFF | Enthält grundlegende chinesische, japanische und koreanische Zeichen, den häufigsten chinesischen Zeichenbereich. |
| CJK Unified Ideographs Extension A | 3400–4DBF | Erweiterter Bereich A, der weniger häufig verwendete chinesische Schriftzeichen enthält. |
| CJK Unified Ideographs Extension B | 20000–2A6DF | Der erweiterte Bereich B umfasst hauptsächlich alte Schriftzeichen und einige seltene chinesische Schriftzeichen. |
| CJK Unified Ideographs Extension C | 2A700–2B73F | Bereich C wurde erweitert, um alte Charaktere und seltene Charaktere weiter zu erweitern. |
| CJK Unified Ideographs Extension D | 2B740–2B81F | Der erweiterte Bereich D enthält selten verwendete chinesische Schriftzeichen. |
| CJK Unified Ideographs Extension E | 2B820–2CEAF | Erweitern Sie Bereich E und fügen Sie hauptsächlich seltenere chinesische Schriftzeichen hinzu. |
| CJK Unified Ideographs Extension F | 2CEB0–2EBEF | Erweiterter Bereich F, einschließlich seltenerer alter Schriftzeichen und chinesischer Schriftzeichen. |
| CJK Unified Ideographs Extension G | 30000–3134F | Der erweiterte G-Bereich ist der zuletzt hinzugefügte Bereich für chinesische Schriftzeichen. |
| CJK Compatibility Ideographs | F900–FAFF | Kompatibilitätszone für Kompatibilität mit älteren Zeichensatzsystemen, z. B. unterschiedliche Glyphen für japanische Glyphen. |
Das oben aufgeführte Sortiment umfasst die meisten chinesischen Schriftzeichen und wird in vielen verschiedenen Bereichen vertrieben, um unterschiedlichen Anforderungen gerecht zu werden, einschließlich moderner chinesischer Schriftzeichen, alter Schriftzeichen und kompatibler Schriftzeichen. Für das Design chinesischer Schriftarten oder die Zeichenanalyse bieten diese Bereiche vollständige Unterstützung für Schriftarten.
email: [email protected]