Heim >Backend-Entwicklung >C++ >Wie kann ich Unicode -Strings in C# entkommen und entlesen, um die ASCII -Kompatibilität aufrechtzuerhalten?
Umgang mit Unicode -Zeichenfolgen in ASCII -Umgebungen mit C#
Die Aufrechterhaltung von Unicode-Zeichen innerhalb von Ascii-codierten Zeichenfolgen ist in bestimmten Situationen von entscheidender Bedeutung. Dieser Artikel bietet eine Methode zum Umwandeln von Unicode -Zeichenfolgen in entkommene ASCII -Äquivalente und zurück, um die -Ebends von C#zu überwinden (z. B. π in "?") Encoding
Die codierende Herausforderung Die integrierte
c#integriert behandelt Zeichen jenseits des ASCII-Bereichs (0-127) als ungültig und ersetzt sie durch "?". Dies ist problematisch, wenn Unicode -Zeichen in ASCII -Kontexten erhalten bleiben. Encoding
Lösung: Entfliehen und unablässige Unicode -Zeichen
Unsere Lösung ersetzt Nicht-ASCII-Zeichen durch ihre entkommenen ASCII-Darstellungen unter Verwendung des -Formats. uXXXX
bedeutet einen Unicode -Zeichen, gefolgt von seinem hexadezimalen Codepunkt. Dies stellt sicher, dass die ursprünglichen Unicode -Zeichen bei codiert in ASCII.
u
Der Codierungsprozess durch die Eingabezeichenfolge iteriert. Wenn ein Zeichen den ASCII -Bereich überschreitet, wird seine entkommene Darstellung an eine
. angehängt
StringBuilder
Der Dekodierungsprozess verwendet regelmäßige Ausdrücke.
identifiziert entkommene Unicode -Sequenzen () und konvertiert sie wieder in ihre entsprechenden Unicode -Zeichen. Regex.Replace
uXXXX
Der folgende C# -Code zeigt den Codierungs- und Dekodierungsprozess:
Die Ausgabe ist:
<code class="language-csharp">string unicodeString = "This function contains a unicode character pi (\u03a0)"; Console.WriteLine(unicodeString); string encoded = EncodeNonAsciiCharacters(unicodeString); Console.WriteLine(encoded); string decoded = DecodeEncodedNonAsciiCharacters(encoded); Console.WriteLine(decoded);</code>
Dies zeigt die effektive Umwandlung zwischen Unicode -Saiten und ihren entkommenen ASCII -Versionen, wodurch Unicode -Zeichen in ASCII -Umgebungen erhalten bleiben.
<code>This function contains a unicode character pi (π) This function contains a unicode character pi (\u03a0) This function contains a unicode character pi (π)</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Unicode -Strings in C# entkommen und entlesen, um die ASCII -Kompatibilität aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!