哪种编码将“í”替换为“\303 \255”?
Which encoding replaces "í" with "\303 \255"?
任何人都知道这是哪种编码。他们告诉我这是 UTF8,但我看不出如何。
此输入:
aquí (notice the accent on the i)
应该制作这个:
aqu3 5
似乎这是基于此 table https://www.acc.umu.se/~saasha/charsets/,但我可以看到如何从 .NET 的随机用户输入字符串中获得建议的输出 - 当然无需构建这种疯狂的转换table.
有什么想法吗?
是UTF8,303 255 八进制是十进制的195 173,这些数字应该比较眼熟吧。请参阅您链接的 table 中的 dec
和 oct
headers。
没有 built-in 类型会为 某些 字符生成八进制输出 - 您必须决定哪些字符为 "octal-escape" 以及哪些保持。
以下代码片段生成您想要的输出(没有额外的 space),并根据字符是否在 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();
任何人都知道这是哪种编码。他们告诉我这是 UTF8,但我看不出如何。 此输入:
aquí (notice the accent on the i)
应该制作这个:
aqu3 5
似乎这是基于此 table https://www.acc.umu.se/~saasha/charsets/,但我可以看到如何从 .NET 的随机用户输入字符串中获得建议的输出 - 当然无需构建这种疯狂的转换table.
有什么想法吗?
是UTF8,303 255 八进制是十进制的195 173,这些数字应该比较眼熟吧。请参阅您链接的 table 中的 dec
和 oct
headers。
没有 built-in 类型会为 某些 字符生成八进制输出 - 您必须决定哪些字符为 "octal-escape" 以及哪些保持。
以下代码片段生成您想要的输出(没有额外的 space),并根据字符是否在 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();