Escape Unicode -Zeichen in ASCII String
]In einigen Programmierszenarien ist die Konvertierung von Unicode -Zeichen in den entkommenen ASCII -Zeichenfolgen eine übliche Anforderung. Mit diesem Prozess können Unicode -Zeichen erhalten bleiben, ansonsten kann er während des Codierungsprozesses verloren gehen oder durch andere Zeichen ersetzt werden.
Zum Beispiel muss eine Zeichenfolge, die das Unicode -Zeichen π (pi) enthält, in das entkommene ASCII -Format (\ u03a0) umgewandelt werden. Diese Konvertierung stellt sicher, dass die Zeichen erhalten bleiben, auch wenn die Zeichenfolge in Systemen codiert ist, die Unicode -Zeichen nicht unterstützen.
Um dies zu tun, müssen alle Nicht-ASCII-Zeichen in der Zeichenfolge durch ihre entsprechende Escape-Sequenz ersetzt werden. Diese Escape -Sequenzen beginnen mit einem Backslash (\), gefolgt von einer hexadezimalen Darstellung von Unicode -Codepunkten. Zum Beispiel ist der Unicode -Codepunkt von π 03A0, so dass seine Fluchtsequenz zu \ u03a0 wird.
Der folgende C# -Code zeigt, wie man Nonascii-Zeichen mit \ uxxxx Escape-Format codiert und dekodiert:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
string unicodeString = "此函数包含一个Unicode字符pi (\u03a0)";
Console.WriteLine(unicodeString);
string encoded = EncodeNonAsciiCharacters(unicodeString);
Console.WriteLine(encoded);
string decoded = DecodeEncodedNonAsciiCharacters(encoded);
Console.WriteLine(decoded);
}
static string EncodeNonAsciiCharacters(string value)
{
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c > 127)
{
// 此字符对于ASCII来说太大
string encodedValue = "\\u" ((int)c).ToString("x4");
sb.Append(encodedValue);
}
else
{
sb.Append(c);
}
}
return sb.ToString();
}
static string DecodeEncodedNonAsciiCharacters(string value)
{
return Regex.Replace(
value,
@"\\u(?[a-zA-Z0-9]{4})",
m =>
{
return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
});
}
}
In diesem Code durchquert die -Codenonasciicharacters
die Eingabezeichenfolge und erkennt Nicht-ASCII-Zeichen, wodurch sie in ihre Escape-Sequenz umgewandelt werden. Andererseits verwendet die decodeCodedNonasciicharacters
eine reguläre Ausdruck, um entsiedelte Saiten zu analysieren und in die ursprünglichen Unicode -Zeichen zurückzukehren.
Die Ausgabe dieses Programms zeigt den Prozess:
此函数包含一个Unicode字符pi (π)
此函数包含一个Unicode字符pi (\u03a0)
此函数包含一个Unicode字符pi (π)
] Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3