C# 将未知编码转换为utf-8
我正在使用一个json服务返回用法语编写的包含重音的字符串。问题是我没有正确地接收到它们,因为重音被符号“é”=>“?”取代 我猜问题在于编码,但我尝试将字符串转换为utf8的每种编码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().
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声明中指明。感谢您的回答,但我找到了源代码,他们的结尾有一个错误。从那以后,他们修好了,一切正常