Escape les caractères Unicode dans la chaîne ASCII
]Dans certains scénarios de programmation, la conversion des caractères Unicode en chaînes ASCII échappées est une exigence commune. Ce processus permet de préserver les caractères Unicode, sinon il peut être perdu ou remplacé par d'autres caractères pendant le processus d'encodage.
Par exemple, une chaîne contenant le caractère Unicode π (Pi) doit être convertie en format ASCII échappé (\ U03A0). Cette conversion garantit que les caractères sont conservés même si la chaîne est codée dans des systèmes qui ne prennent pas en charge les caractères Unicode.
Pour ce faire, tous les caractères non ASCII de la chaîne doivent être remplacés par leur séquence d'échappement correspondante. Ces séquences d'échappement commencent par une barre oblique inverse (\) suivie d'une représentation hexadécimale des points de code Unicode. Par exemple, le point de code Unicode de π est 03A0, donc sa séquence d'échappement devient \ U03A0.
Le code C # suivant montre comment coder et décoder les caractères non ascii à l'aide de \ uxxxx fape format:
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();
});
}
}
Dans ce code, la méthode Encodeonasciicharacters
traverse la chaîne d'entrée et reconnaît les caractères non ascii, les convertissant en leur séquence d'évasion. D'un autre côté, la méthode decodeencodedNonascIicharacters
utilise une expression régulière pour analyser les chaînes échappées et les transformer en caractères Unicode originaux.
La sortie de ce programme démontre le processus:
此函数包含一个Unicode字符pi (π)
此函数包含一个Unicode字符pi (\u03a0)
此函数包含一个Unicode字符pi (π)
] Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3