2011-11-08 5 views
3

私のアプリケーションでは、ユーザーがサイトにアップロードするファイルからテキストをデータベースにインポートします。 データベースSQL Server 2005のテキストはnvarcharカラムに格納されていますが、EFとL2SQLを使用しています。文字列のエンコーディングをチェックすることはできますか?

ユーザーはUTF-8でファイルを作成する必要がありますが、残念ながらいくつかのファイルでは異なるエンコーディングが使用されています。その結果、一部の文字は無効です。

どのレコードが有効であるか調べたいのですが、私はutf8checkerを使用します。元のファイルでは正常に動作しますが、テキストがデータベースの場合はIsUtf8メソッドは常にtrueを返します。

+1

"from database" - アップロード後、すべてのコードが再エンコードを開始する前にチェックしてください。 –

+0

、それはvarbinaryですか? nvarchar?画像? varchar?テキスト? ntext? –

+0

そのデータベースのnvarchar – jlp

答えて

1

私はSQLサーバは常にUnicodeをUCS-2として保存すると思います。したがって、読み込み時間ではなく、挿入時にデータが正しいエンコーディングを持つようにする必要があります。さもなければ、SQLサーバはそれを壊してしまいます。データが挿入された後に元のエンコーディングを判断する方法はないと思います - レコード自体にエンコーディング定義があるのでなければ、別の列や最初の数文字あなたのデータ要素の例えば。 - XMLはこのようにします。

これが役に立ちます。

関連する問題