C#では、テキストファイルからSQL文を挿入し、ADO.NETを使用してデータベース上でそれらを実行しようとしています。いくつかのクエリには、列の1つにギリシャ語の文字が含まれています。具体的には、マイクロ秒(usec)で使用されるMu(ファンキーな見た目u)。問題は疑問符が実際にデータベースに挿入されていることです(秒)。しかし、私は、デバッガがダイヤモンドの内側に疑問符を表示しているので、テキストファイルの読み込みに問題があると感じています。私はStreamReaderのReadLineメソッドを使用しています。私は間違って何をしていますか?ファイルから特殊文字を読み取るにはどうすればよいですか?
2
A
答えて
4
ファイルを読み取っているときに間違ったエンコーディングを使用していることがほぼ確実です。あなたのテキストファイルが実際にエンコードされていることを知っていますか?ほとんどの.NET APIではデフォルトでUTF-8が使用されていますが、ファイルはがEncoding.Defaultで表されるオペレーティングシステムのデフォルトエンコーディングになることがあります。このお試しください:
using (StreamReader reader = new StreamReader(filename, Encoding.Default))
{
...
}
を私はまた強くは、あなたがそれをデータベースに触れることなく作業を取得しようとすることをお勧めします。これは正しい結果が得られた場合、、
public static void DumpString(string text)
{
Console.WriteLine("Text: '{0}'", text);
foreach (char c in text)
{
Console.WriteLine("{0}: U+{1:x4}", c, (int) c);
}
}
データベースに挿入しよう:自分のUnicodeエンコーディングの面で、文字列内の文字をプリントアウトしてファイルを読み込みます。そうすれば、後でデータベースが「間違っている」ように見える場合、問題はファイルへのアクセスではなくデータベースへのアクセスであることがわかります。
2
は、次の3つのことをチェックする必要があります。
- あなたはStreamReaderを
- 、データベース・サーバー上のカラム型(nvarchar型ではなく、varchar型)に有効な
- 照合開くときに使用するエンコーディング列
これらのいずれかが間違っていると、DBからデータを読み戻すときに間違った値が返されます。
関連する問題
- 1. URLクエリ文字列から特殊文字を読み取る
- 2. JSONPファイルから特殊文字が正しく読み取られない
- 3. ファイル特殊文字からデータを読み取る際の問題
- 4. ファイルの読み込みで特殊文字を無視する
- 5. Java - テキストファイルから特殊文字を読み取ることができない
- 6. アンドロイドのXMLフィードから特殊文字を削除するにはどうすればよいですか?
- 7. C#のWindowsコンソールから特殊文字(0x80 ... 0x9F)を読み取るにはどうすればよいですか?
- 8. 文字列から郵便番号を読み取るにはどうすればよいですか?
- 9. OpenSearchServer/Luceneで(#)のような特殊文字を処理するにはどうすればよいですか?
- 10. Javaで特殊文字のif文を作成するにはどうすればよいですか?
- 11. MySQLで特殊文字をエスケープするにはどうすればよいですか?たとえば
- 12. IE8でJSONPファイルから特殊文字が正しく読み取られない
- 13. 文字列の中の特殊文字と特殊記号を特定するにはどうすればよいですか?
- 14. TextViewに特殊文字(–など)を表示するにはどうすればよいですか?
- 15. R(Rstudio)にÆØÅのような特殊文字を読み取る
- 16. OLEDBを使用してFoxProから特殊文字を読み取る
- 17. テキストボックスで特殊文字を無効にするにはどうすればよいですか?
- 18. コマンドラインで特殊文字を含む行を削除するにはどうすればよいですか?
- 19. javascriptで特殊文字をregexに置き換えるにはどうすればよいですか?
- 20. Perl正規表現で特殊文字を処理するにはどうすればよいですか?
- 21. PerlでXMLの特殊文字をエスケープ解除するにはどうすればよいですか?
- 22. SQL Serverで特殊文字をサポートするにはどうすればよいですか?
- 23. SendKeys経由で特殊文字を送信するにはどうすればよいですか?
- 24. 特殊フォーマット文字列をテキストに変換するにはどうすればよいですか?
- 25. 特殊文字\ u0097をNsStringに変換するにはどうすればよいですか?
- 26. Advantage SQLデータベースに特殊文字を挿入するにはどうすればよいですか?
- 27. ファイルを読み込んで文字数をカウントするにはどうすればよいですか?
- 28. 特殊文字を含むスマートURLを作成するにはどうすればよいですか?
- 29. ファイルからの特殊文字を読む - Javaの
- 30. 特殊文字を含むANSIエンコードファイルを読み取る方法
それはやっているようでした。しかし、私はこのエンコーディング全体を理解しているのか分かりません。異なるデフォルトのエンコーディングを持つ別のユーザーがファイルを変更した場合、新しいファイルでアプリを再実行しようとするとどうなりますか?それはもはや機能しませんか?代わりにEncoding.UTF8を使用する必要がありますか? – bsh152s
UTF-8を使用する方がはるかに良いアイデアですが、エンコーディングが本当に何であるかを常に知っておく必要があります。ファイルを常にUTF-8として保存することができますか? –