Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 将字节[]转换为C中字符集编码的字符串#_C# 4.0_Windows Phone 8 - Fatal编程技术网

C# 4.0 将字节[]转换为C中字符集编码的字符串#

C# 4.0 将字节[]转换为C中字符集编码的字符串#,c#-4.0,windows-phone-8,C# 4.0,Windows Phone 8,我是Windows phone 8开发人员和C#新手。我尝试从远程服务器获取字符串。这是我的代码: var client = new HttpClient(); var response = await client.GetAsync(MyUrl); string charset = GetCharset(response.Content.Headers.ContentType.ToString()); Debug.WriteLine("charset: " + charset)

我是Windows phone 8开发人员和C#新手。我尝试从远程服务器获取字符串。这是我的代码:

  var client = new HttpClient();
  var response = await client.GetAsync(MyUrl);
  string charset = GetCharset(response.Content.Headers.ContentType.ToString());
  Debug.WriteLine("charset: " + charset); \\debug show: charset: ISO-8859-1
  var bytesCharset = await response.Content.ReadAsByteArrayAsync();
  Debug.WriteLine(Encoding.UTF8.GetString(bytesCharset,0,bytesCharset.Length)); 
  //Debug show: `m\u1EF9 t�m`

m\u1EF9 t�m是我得到的,但我想是越南语:
mỹ T–m
。有谁能给我一个想法来达到预期的效果吗?(我认为字节是用IOS-8859-1编码的)。

您可以使用static
GetEncoding
方法请求特定的代码页。 e、 g:


Encoding.UTF8应该正确解释数据,因为ISO-8859-1是UTF-8的子集。但是,为了透明地处理其他编码,最好使用方法而不是ReadAsByteArrayAsync()


我怀疑您的字符串是正确的,但调试窗口无法正确显示这两个unicode字符。

最终我找到了解决方案。使用Json.Net从远程服务器解析Json后,我的问题消失了,我可以得到预期的结果:

 JArray jArray = JArray.Parse(isoText);
 String exptectedText= jArray[1].ToString();

事实上,我不知道我的代码为什么能工作:(无论如何,谢谢!

我在真实设备中使用了
ReadAsStringAsync()
,但我显示的结果与调试结果相同。
 JArray jArray = JArray.Parse(isoText);
 String exptectedText= jArray[1].ToString();