ペルシア語を含むテキスト ファイルがあり、ANSI エンコーディングを使用して保存されています。テキスト ファイルからペルシア語を読み取ろうとすると、「?」のような文字が表示されます。この問題を解決するために、ファイルのエンコーディングを UTF8 に変更し、テキスト ファイルを書き直しました。ファイルのエンコーディングを変更する方法は次のとおりです。
public void Convert2UTF8(string filePath)
{
//first, read the text file with "ANSI" endocing
StreamReader fileStream = new StreamReader(filePath, Encoding.Default);
string fileContent = fileStream.ReadToEnd();
fileStream.Close();
//Now change the file encoding and replace it with the UTF8
StreamWriter utf8Writer = new StreamWriter(filePath.Replace(".txt", ".txt"), false, Encoding.UTF8);
utf8Writer.Write(fileContent);
utf8Writer.Close();
}
これで最初の問題は解決しました。ただし、ここには別の問題があります。SQL サーバー データベース テーブルからペルシア語を検索するたびに、データベース テーブルにレコードが存在するにもかかわらず結果が null になります。
表にあるペルシア語の単語を見つけるための解決策は何ですか? 私が現在使用しているコードは、次のようなものです。
SELECT * FROM [dbo].[WordDirectory]
WHERE Word = N'کلمه'
Word
は、ペルシア語の単語が保存されるフィールドです。フィールドのタイプは ですNVARCHAR
。SQL サーバーのバージョンは 2012 です。照合順序を変更する必要がありますか?