Encoding 什么是字符编码?

Encoding 什么是字符编码?,encoding,character-encoding,Encoding,Character Encoding,我有几个字符不能正确识别。 像这样的人物: º á ó (etc..) º á ó (等等) 这意味着字符编码不是utf-8,对吗? 那么,你能告诉我它是什么字符编码吗 有两种编码:一种用于编码字符串,另一种用于解码字符串。它们必须相同才能得到预期的结果。如果它们不同,则某些字符将显示不正确。我们可以试着猜测你是否发布了实际和预期的结果。我们没有足够的信息来真正回答这个问题,但要点是:你不应该只是猜测。您需要找出数据来自何处,并找出编码是什么。你没有告诉我们任何关于数据源的事情,所以我们完全不知

我有几个字符不能正确识别。 像这样的人物:

º á ó (etc..) º á ó (等等) 这意味着字符编码不是utf-8,对吗? 那么,你能告诉我它是什么字符编码吗


有两种编码:一种用于编码字符串,另一种用于解码字符串。它们必须相同才能得到预期的结果。如果它们不同,则某些字符将显示不正确。我们可以试着猜测你是否发布了实际和预期的结果。

我们没有足够的信息来真正回答这个问题,但要点是:你不应该只是猜测。您需要找出数据来自何处,并找出编码是什么。你没有告诉我们任何关于数据源的事情,所以我们完全不知道。如果这些文件是用记事本之类的东西保存的,您可能需要尝试
编码


如果您知道字符的含义以及它们在二进制中的表示方式,那么应该建议使用编码。。。但是,我们需要知道更多的信息。

我写了两个方法来缩小这种情况的可能性

 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();
        }

编码是修改某些现有内容的形式;因此,允许通过所需的目标协议对其进行解析

浏览互联网时可以看到一个编码示例:

您访问的URL:www.example.com可能具有通过URL地址运行自定义搜索的搜索功能:

www.example.com?search=...
URL上的以下变量需要URL编码。如果你要写:

www.example.com?search=cat food cheap
浏览器无法理解您的请求,因为您使用了无效字符“”(空白)

若要更正此编码错误,应将“”与“%20”交换以形成此URL:

www.example.com?search=cat%20food%20cheap
不同的系统使用不同形式的编码,在本例中,我对URL使用了标准十六进制编码。在其他应用程序和实例中,您可能会发现需要使用其他类型的编码


祝你好运

我只能举个例子。。因为我也不知道。它们来自一个名为Kondor的程序,我无法访问它的源代码@aF:这就是为什么我首先写了下面答案中给出的方法。有时,启发式算法是唯一实用的解决方案。