我正在处理我正在处理的网站内容的编码/解码问题。我正在从网上提取一个XML文件,它可能有法语和德语字符和“e”“r”等的小撇号,但大部分内容都是英文的。当我尝试通过选择所有不同的单词来处理它们时,有时会将重复数据保存到数据库中。我应该使用任何编码/解码类/库,以便所有单词在一次编码/解码中是统一的吗?我认为在我的情况下,即使这些单词是英文的,看起来两个相似的单词的编码不同,而且由于编码不同,C#相等运算符==
与这两个不匹配?
换句话说,"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;
}
}
}
}