Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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# web内容的编码/解码问题_C#_Encoding_Decode - Fatal编程技术网

C# web内容的编码/解码问题

C# web内容的编码/解码问题,c#,encoding,decode,C#,Encoding,Decode,似乎我在处理网站内容时遇到了编码/解码问题。我正在从web上提取一个XML文件,它可能有类似法语和德语的字符,并在tom的“e”“r”上加上小撇号,等等,但大部分内容都是英语的。当我试图通过选择所有不同的单词来处理它们时,有时会有重复的单词保存到数据库中。我是否应该使用任何编码/解码类/库,以便在一个编码/解码中所有单词都是统一的?我认为在我的例子中,即使这些单词是英文的,似乎两个相似的单词的编码不同,而C#equality操作符==由于编码不同而不匹配这两个词 所以换句话说,由于编码的原因,“

似乎我在处理网站内容时遇到了编码/解码问题。我正在从web上提取一个XML文件,它可能有类似法语和德语的字符,并在tom的“e”“r”上加上小撇号,等等,但大部分内容都是英语的。当我试图通过选择所有不同的单词来处理它们时,有时会有重复的单词保存到数据库中。我是否应该使用任何编码/解码类/库,以便在一个编码/解码中所有单词都是统一的?我认为在我的例子中,即使这些单词是英文的,似乎两个相似的单词的编码不同,而C#equality操作符
==
由于编码不同而不匹配这两个词

所以换句话说,由于编码的原因,“car”==“car”可能不匹配?这可能吗?我该怎么修?我应该用密码破译所有东西吗

更新:代码:下面的代码将检查该单词是否存在,如果是,则将其拉入,否则将插入一个新词。因此,进入数据库的单词应该总是不同的

public static int GetWordID(string word)
{
    string _truncatedword = String.Empty;

    if (word.Length > 48)
    {
        _truncatedword = word.Substring(0, 47).Trim().ToLower();
    }
    else
    {
        _truncatedword = word.Trim().ToLower();
    }

    if (DWords.ContainsKey(_truncatedword))
    {
        return DWords[_truncatedword];
    }
    else
    {
        using (SqlConnection _connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString))
        {
            _connection.Open();

            SqlDataAdapter _adapter = new SqlDataAdapter("select wordid from word where word = @word", _connection);
            _adapter.SelectCommand.Parameters.AddWithValue("@word", _truncatedword);

            DataTable _dtWord = new DataTable();
            _adapter.Fill(_dtWord);

            if (_dtWord.Rows.Count > 0)
            {
                int _wordID = Convert.ToInt32(_dtWord.Rows[0]["wordid"]);

                DWords.Add(_truncatedword, _wordID);

                return _wordID;
            }
            else
            {
                SqlCommand _command = new SqlCommand("insert into word(word) values(@word); select @@identity", _connection);
                _command.Parameters.AddWithValue("@word", _truncatedword);

                int _wordID = Convert.ToInt32(_command.ExecuteScalar());

                DWords.Add(_truncatedword, _wordID);

                return _wordID;
            }
        }
    }
}

你能提供一个具体的例子吗?这很基本。我试图不在数据库中插入诸如“the”、“a”、“an”之类的文章,但这是在C#
word!=已选中“
”。换句话说,
单词!=“
失败。代码在一个线程中运行,没有任何中断。是的,这是可能的,有些字母看起来像其他字母,但从您上面的描述来看,听起来好像您正在进行某种参考比较,请发布您的代码。据我所知,您正在比较两个具有不同Unicode字符集的外观相似的单词。对于所有实际编程目的,这些词被认为是不同的。你可以通过查看每个字符数组的内容来研究你称之为重复的两个单词,我想这会向你解释的。请提供代码示例以解决此问题。我对编码相当陌生。我想要统一、清晰的单词,而不是重复出现的单词。我处理了50000个单词,有500个副本,所以不是很多。