转换问题

时间:2010-08-02 14:55:45

标签: c#

有人可以告诉我如何在C#中执行此操作吗?

从Quoted Printable转换为binary,然后使用UTF-8编码将该二进制文件解码为文本。

以下是我需要引用的文字示例:

“评论:Je suis abonn = C3 = A9 = C3 = A0 la livraison = C3 = A0 domicile depuis longtemps。”

1 个答案:

答案 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());

如果您有任何疑问,请在评论中提问。请记住:不要复制和使用您不理解的代码:)