将 Unicode 字符串转换为转义的 ASCII 字符串 [英] Convert a Unicode string to an escaped ASCII string
本文介绍了将 Unicode 字符串转换为转义的 ASCII 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何转换这个字符串:
This string contains the Unicode character Pi(π)
转为转义的 ASCII 字符串:
into an escaped ASCII string:
This string contains the Unicode character Pi(u03a0)
和反之?
C# 中可用的当前编码将 π 字符转换为?".我需要保留那个角色.
The current Encoding available in C# converts the π character to "?". I need to preserve that character.
推荐答案
这会在 uXXXX 格式之间来回切换.
This goes back and forth to and from the uXXXX format.
class Program {
static void Main( string[] args ) {
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 );
}
static string EncodeNonAsciiCharacters( string value ) {
StringBuilder sb = new StringBuilder();
foreach( char c in value ) {
if( c > 127 ) {
// This character is too big for 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(?<Value>[a-zA-Z0-9]{4})",
m => {
return ((char) int.Parse( m.Groups["Value"].Value, NumberStyles.HexNumber )).ToString();
} );
}
}
输出:
这个函数包含一个unicode字符pi(π)
This function contains a unicode character pi (π)
此函数包含一个 unicode 字符 pi (u03a0)
This function contains a unicode character pi (u03a0)
这个函数包含一个unicode字符pi(π)
This function contains a unicode character pi (π)
这篇关于将 Unicode 字符串转换为转义的 ASCII 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文