C# 将西里尔字母解码为 ASCII

C# Decode Cyrillic to ASCII

我有一个非常好的函数,可以将 ASCII 编码为俄语字符,但是我也需要它从俄语到 ASCII 的另一种方式。

我的函数是:

public 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();
            });
    }

我找不到在我的文本中获取 \u235 的好方法或任何其他方法来转义这些类型的字符

是这样的吗? (Fiddle: https://dotnetfiddle.net/6BbXAt)

public static string EncodeNonAsciiCharacters(string value)
{
  return Regex.Replace(
    value,
    @"[^\x00-\x7F]",
    m => String.Format("\u{0:X4}", (int)m.Value[0]));
}

正则表达式来自(grep) Regex to match non-ASCII characters?