【发布时间】:2011-09-26 11:28:23
【问题描述】:
我有一个字节数组:
00 01 00 00 00 12 81 00 00 01 00 C8 00 00 00 00 00 08 5C 9F 4F A5 09 45 D4 CE
通过StreamReader使用UTF8 encoding读取
// Note I can't change this code, to many component dependent on it.
using (StreamReader streamReader =
new StreamReader(responseStream, Encoding.UTF8, false))
{
string streamData = streamReader.ReadToEnd();
if (requestData.Callback != null)
{
requestData.Callback(response, streamData);
}
}
当该函数运行时,我得到以下返回给我(我转换为字节数组)
00 01 00 00 00 12 EF BF BD 00 00 01 00 EF BF BD 00 00 00 00 00 08 5C EF BF BD 4F EF BF BD 09 45 EF BF BD
不知何故,我需要获取返回给我的内容并将其恢复为正确的编码和正确的字节数组,但我已经尝试了很多。
请注意,我正在使用 WP7 受限 API。
希望大家能帮忙。
谢谢!
更新寻求帮助...
如果我执行以下代码,那几乎是正确的,唯一错误的是倒数第 5 个字节被拆分。
byte[] writeBuf1 = System.Text.Encoding.UTF8.GetBytes(data);
string buf1string = System.Text.Encoding.BigEndianUnicode.GetString(writeBuf1, 0, writeBuf1.Length);
byte[] writeBuf = System.Text.Encoding.BigEndianUnicode.GetBytes(buf1string);
【问题讨论】:
-
你能告诉我们编写/创建数组的代码吗?
-
不,它来自第三方服务,这是服务返回的确切数据...此外,我只是想让它恢复到它应该是的状态(因为它在响应流)
-
我对这个非常困惑......
-
那你怎么知道流是以什么编码和字节顺序写入的呢?
-
你能附加一个网络嗅探器(Fiddler)来查看实际传输的内容吗?
标签: windows-phone-7 c#-4.0 encoding bytearray