Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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# 将未知编码转换为utf-8_C#_.net_Encoding_Utf 8_Diacritics - Fatal编程技术网

C# 将未知编码转换为utf-8

C# 将未知编码转换为utf-8,c#,.net,encoding,utf-8,diacritics,C#,.net,Encoding,Utf 8,Diacritics,我正在使用一个json服务返回用法语编写的包含重音的字符串。问题是我没有正确地接收到它们,因为重音被符号“é”=>“?”取代 我猜问题在于编码,但我尝试将字符串转换为utf8的每种编码 var allTheEncoding = Encoding.GetEncodings(); foreach (var encodingInfo in encoding) { var decoByte = encodingInfo.GetEncoding().

我正在使用一个json服务返回用法语编写的包含重音的字符串。问题是我没有正确地接收到它们,因为重音被符号“é”=>“?”取代

我猜问题在于编码,但我尝试将字符串转换为utf8的每种编码

      var allTheEncoding = Encoding.GetEncodings();
      foreach (var encodingInfo in encoding)
      {
          var decoByte = encodingInfo.GetEncoding().GetBytes(str);
          var utf8Bytes = Encoding.Convert(encodingInfo.GetEncoding(), utf8, decoByte);
          str = utf8.GetString(utf8Bytes);
      }
我还是有同样的问题 我做得对吗?我该怎么办


提前谢谢

马跑了之后,你要关上马厩的门


不要处理
str
,处理成为
str
的原始流,因为错误是在
str
创建时潜入的。

马逃跑后,你正在关闭马厩门


不要处理
str
,处理成为
str
的原始流,因为错误是在创建
str
时潜入的。

即使转换了错误的东西也不要尝试编码。您可以在接收时指定编码,只有在接收字节数组后才能进行转换。您必须弄清楚源数据的编码是什么。也许您可以通过在这里和那里戳它来经验地了解它,但是您不应该尝试编写应用程序来动态地了解源代码编码。要么找出源代码并要求编码永远不要偏离,要么要求源代码向您指示它使用的编码。例如,在HTTP中,字符编码在内容类型标头charset字段中指示。在XML文档中,字符编码在XML声明中指明。感谢您的回答,但我找到了源代码,他们的结尾有一个错误。从那以后,他们修复了它,所有的东西都工作了,甚至没有试图在它被转换后对错误的东西进行编码。您可以在接收时指定编码,只有在接收字节数组后才能进行转换。您必须弄清楚源数据的编码是什么。也许您可以通过在这里和那里戳它来经验地了解它,但是您不应该尝试编写应用程序来动态地了解源代码编码。要么找出源代码并要求编码永远不要偏离,要么要求源代码向您指示它使用的编码。例如,在HTTP中,字符编码在内容类型标头charset字段中指示。在XML文档中,字符编码在XML声明中指明。感谢您的回答,但我找到了源代码,他们的结尾有一个错误。从那以后,他们修好了,一切正常