有人可以告诉我如何在C#中执行此操作吗?
从Quoted Printable转换为binary,然后使用UTF-8编码将该二进制文件解码为文本。
以下是我需要引用的文字示例:
“评论:Je suis abonn = C3 = A9 = C3 = A0 la livraison = C3 = A0 domicile depuis longtemps。”
答案 0 :(得分:3)
好的,所以你的问题基本上是两个问题。首先,您需要能够解码quoted-printable。我假设您将编码文本作为字符串。你必须使用while循环来运行这个字符串,如下所示。我故意省略了将两个十六进制字符转换成一个字节的部分;我相信你可以自己解决这个问题:)
var i = 0;
var output = new List<byte>();
while (i < input.Length)
{
if (input[i] == '=' && input[i+1] == '\r' && input[i+2] == '\n')
{
// skip this
i += 3;
}
else if (input[i] == '=')
{
byte b = (construct the byte from the characters input[i+1] and input[i+2]);
output.Add(b);
i += 3;
}
else
{
output.Add((byte)input[i]);
i++;
}
}
最后,output
包含原始字节。现在您需要做的就是使用UTF8解码它:
var outputString = Encoding.UTF8.GetString(output.ToArray());
如果您有任何疑问,请在评论中提问。请记住:不要复制和使用您不理解的代码:)