2011-08-02 11 views
1

奇妙なタイトルは間違いありません。「奇妙な文字」がCsv経由ではなくSQLサーバ上で正常に動作しています

私たちのSQLサーバー(2008)データベースは、非常に合法的に、私はC#でCSVファイルからのデータを読んでいます "のMicrosoft XML・ÖÎö³ÌÐòºÍSDK(不明)"

のように見えるテキストフィールド内のデータを持っていますこれは同じ種類のデータを持ちます。私たちはLumenWorks.Framework.IO.Csv CsvReaderを使用しています(時には本当に大きなファイルを処理する必要があることがあるため)。これにはソースコードがあります。

これらのフィールドは、自分自身をCSVファイルに(すなわち、上記のように)罰金に見えますが、データは

「マイクロソフトXMLとして表され、それが終わるCSVから読み込まれたときSDK(不明) '

どちらが間違っていますか。データベースに戻ってクエリで使用すると、(明らかに)一致するものは見つかりません。私はSMSSの元の文字列を使用して正常にクエリできます。

問題を探すために正しい用語を見つけるのに苦労しているので、私はウェブ検索で邪魔になりました。

誰でもこの問題を適切な言葉で説明することができますし、この誤訳を引き起こす可能性のあるCsvReaderコード(または私たちのもの)でどのようなものを探しているべきですか?

+1

エンコーディングの問題のようです。すべてのステップでエンコードを選択していますか、フレームワークが選択していますか? – alun

答えて

2

あなたのCSVファイルのエンコーディングを指定する必要があると思われます。

あなたは、現在、このような何かをやっている場合:

using (var csv = new CsvReader(new StreamReader("foo.csv"), true)) 
{ 
    // ... 
} 

...その後、代わりにこのような何かしてみてください:私はあなたよエンコードするのか分からない

using (var csv = new CsvReader(new StreamReader("foo.csv", Encoding.Unicode), true)) 
{ 
    // ... 
} 

注意を使用する必要があります。私は例としてUnicodeを使用しました。 (私が指定しない場合、StreamReaderのデフォルトのエンコーディングはUTF8だと思います)

+0

それは賢明に聞こえる。ファイルは私が知る限りANSIですので、私はそれを試みます。 – kpollock

+1

「var enc = Encoding.GetEncoding(myCodePage)」 –

+0

UTF-7が必要な場合があります。私が試みた最後のもの! – kpollock

関連する問題