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. ファイルからXML文字列を文字列に読み込むにはどうすればよいですか?
- 5. Verilogのファイルから特殊文字を読み取る方法は?
- 6. パンダ:列に特殊文字を含むファイルを読み取る
- 7. viで文字列を特殊文字に置き換えるにはどうすればよいですか?
- 8. ファイル特殊文字からデータを読み取る際の問題
- 9. アンドロイドのXMLフィードから特殊文字を削除するにはどうすればよいですか?
- 10. Scala-ファイルから特定のバイトを読み取るにはどうすればよいですか?
- 11. ファイルの読み込みで特殊文字を無視する
- 12. C#のWindowsコンソールから特殊文字(0x80 ... 0x9F)を読み取るにはどうすればよいですか?
- 13. スキャン文字列に特殊文字を含めるにはどうすればよいですか?
- 14. ファイルから特殊文字(「\ n」など)に読み込まれた文字列を変更します
- 15. Java - テキストファイルから特殊文字を読み取ることができない
- 16. 文字列から郵便番号を読み取るにはどうすればよいですか?
- 17. stdinからOS互換の文字列を読み取るにはどうすればよいですか?
- 18. OpenSearchServer/Luceneで(#)のような特殊文字を処理するにはどうすればよいですか?
- 19. javaで特定の特殊文字を削除するにはどうすればよいですか?
- 20. 文字列入力の最初の文字を読み取るにはどうすればよいですか?
- 21. Rプログラミング - データセットから特殊文字を削除するにはどうすればいいですか?
- 22. Javaで特殊文字のif文を作成するにはどうすればよいですか?
- 23. MySQLで特殊文字をエスケープするにはどうすればよいですか?たとえば
- 24. 文字列に特殊文字が含まれているかどうかを確認するにはどうすればよいですか?
- 25. TextViewに特殊文字(–など)を表示するにはどうすればよいですか?
- 26. 特殊文字でマークされた部分文字列を文字列から削除するにはどうすればよいですか?
- 27. コロナSDKのファイルから値を読み込み/取得するにはどうすればよいですか?
- 28. 文字列の中の特殊文字と特殊記号を特定するにはどうすればよいですか?
- 29. 文字列をXMLファイルに解析するにはどうすればよいですか?xmlのような文字列を読み取るには?
- 30. IE8でJSONPファイルから特殊文字が正しく読み取られない
それはやっているようでした。しかし、私はこのエンコーディング全体を理解しているのか分かりません。異なるデフォルトのエンコーディングを持つ別のユーザーがファイルを変更した場合、新しいファイルでアプリを再実行しようとするとどうなりますか?それはもはや機能しませんか?代わりにEncoding.UTF8を使用する必要がありますか? – bsh152s
UTF-8を使用する方がはるかに良いアイデアですが、エンコーディングが本当に何であるかを常に知っておく必要があります。ファイルを常にUTF-8として保存することができますか? –