【发布时间】:2012-02-06 10:09:53
【问题描述】:
我在解码日语消息时遇到问题,最终输出似乎是一个垃圾值。
编码的 ISO-2022-JP 引用可打印消息:
"=82=B1=82=EA=82=CD=92P=82=C8=82=E9=83e=83X=83g=82=C5=82=B7=82=DD=82=C8=82 =B3=\r\n=82=F1=81A=82=B1 =82=F1=82=C9=82=BF=82=CD"
Quoted Printable 解码代码:
private static string Decode(string input, string bodycharset)
{
var i = 0;
var output = new List<byte>();
while (i < input.Length)
{
if (input[i] == '=' && input[i + 1] == '\r' && input[i + 2] == '\n')
{
//Skip
i += 3;
}
else if (input[i] == '=')
{
string sHex = input;
sHex = sHex.Substring(i + 1, 2);
int hex = Convert.ToInt32(sHex, 16);
byte b = Convert.ToByte(hex);
output.Add(b);
i += 3;
}
else
{
output.Add((byte)input[i]);
i++;
}
}
if (String.IsNullOrEmpty(bodycharset))
return Encoding.UTF8.GetString(output.ToArray());
else
return Encoding.GetEncoding(bodycharset).GetString(output.ToArray());
}
最终输出:
・ア・・・ヘ・P・ネ・・・e・X・g・ナ・キ・ン・ネ・ウ・・・A・ア・・・ノ・ソ・ヘ
有什么解决办法吗?
【问题讨论】:
-
为你的编码..你使用 Encoding.GetEncoding("ISO-2022-JP")
标签: c# asp.net .net decoding quoted-printable