其中编码将“í”替换为“303 255”

本文关键字:替换 编码 | 更新日期: 2023-09-27 17:55:26

>任何人都知道这是哪种编码。他们告诉我这是UTF8,但我看不出怎么做。此输入:

aquí(注意 i 上的重音)

应该产生这个:

AQU''303 ''255

似乎这是基于这个表 https://www.acc.umu.se/~saasha/charsets/,但我可以看到如何从 .NET 的随机用户输入字符串中获取建议的输出 - 当然不需要构建这个疯狂的转换表。

有什么想法吗?

其中编码将“í”替换为“303 255”

它是 UTF8,303 255 八进制是十进制的 195 173,这些数字可能看起来更熟悉。请参阅您链接的表中的decoct标题。

没有内置类型可以为某些字符生成八进制输出 - 您必须决定哪些字符要"八进制转义"以及保留哪些字符。

以下代码片段生成所需的输出(不带额外空格),并根据字符是否在 ASCII 集中转义数据:

string str = "aquí";
StringBuilder output = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
    byte[] bytes = Encoding.UTF8.GetBytes(str.Substring(i, 1));
    if (bytes.Length == 1 && bytes[0] < 128)
    {
        output.Append(str[i]);
    }
    else
    {
        foreach (byte b in bytes)
        {
            output.Append(@"'" + Convert.ToString(b, 8));
        }
    }
}
string result = output.ToString();