我有几个字符无法正确识别。 字符如:
º á ó (etc..)
这意味着字符编码不是utf-8对吗? 那么,你能告诉我它的字符编码是什么吗?
答案 0 :(得分:5)
我们没有足够的信息来真正回答这个问题,但它的要点是:你不应该只是猜测。您需要确定数据的来源,并找出编码的内容。你没有告诉我们关于数据源的任何,所以我们完全处于黑暗中。 可能想要尝试Encoding.Default
,如果这些文件是用记事本保存的。
如果您知道意味着什么以及它们如何以二进制形式表示,那么应该建议编码......但是,我们需要了解更多信息。< / p>
答案 1 :(得分:3)
首先阅读http://www.joelonsoftware.com/articles/Unicode.html
有两种编码:一种用于编码字符串,另一种用于解码字符串。它们必须相同才能获得预期的结果。如果它们不同,则某些字符将显示不正确。我们可以尝试猜测您是否发布了实际和预期的结果。
答案 2 :(得分:3)
我写了几种方法来缩小这种情况的可能性。
static void Main(string[] args)
{
Encoding[] matches = FindEncodingTable('Ÿ');
Encoding[] enc2 = FindEncodingTable(159, 'Ÿ');
}
// Locates all Encodings with the specified Character and position
// "CharacterPosition": Decimal position of the character on the unknown encoding table. E.G. 159 on the extended ASCII table
//"character": The character to locate in the encoding table. E.G. 'Ÿ' on the extended ASCII table
static Encoding[] FindEncodingTable(int CharacterPosition, char character)
{
List matches = new List();
byte myByte = (byte)CharacterPosition;
byte[] bytes = { myByte };
foreach (EncodingInfo encInfo in Encoding.GetEncodings())
{
Encoding thisEnc = Encoding.GetEncoding(encInfo.CodePage);
char[] chars = thisEnc.GetChars(bytes);
if (chars[0] == character)
{
matches.Add(thisEnc);
break;
}
}
return matches.ToArray();
}
// Locates all Encodings that contain the specified character
static Encoding[] FindEncodingTable(char character)
{
List matches = new List();
foreach (EncodingInfo encInfo in Encoding.GetEncodings())
{
Encoding thisEnc = Encoding.GetEncoding(encInfo.CodePage);
char[] chars = { character };
byte[] temp = thisEnc.GetBytes(chars);
if (temp != null)
matches.Add(thisEnc);
}
return matches.ToArray();
}
答案 3 :(得分:1)
编码是修改现有内容的形式;从而允许它被所需的目标协议解析。
浏览互联网时可以看到编码示例:
您访问的网址:www.example.com,可能有搜索工具通过网址运行自定义搜索:
www.example.com?search=...
URL上的以下变量需要URL编码。如果你要写:
www.example.com?search=cat food cheap
由于您使用了''(空格)
的无效字符,浏览器无法理解您的请求要更正此编码错误,您应该将''与'%20'交换为此网址:
www.example.com?search=cat%20food%20cheap
不同的系统使用不同形式的编码,在本例中我使用了标准的十六进制编码作为URL。在其他应用程序和实例中,您可能会发现需要使用其他类型的编码。
祝你好运!