0

いくつかのフランス語のアクセントに関して問題がある「一括挿入」SQLコマンドに関するものです。「à」または「aaccute」は、テキストファイルから挿入した後、データベーステーブルにn++として表示されます。そして、これは現在の変換で問題を抱えている唯一のキャラクターです。「WITH」句を使用してコマンドを変更し、「RAW」、「1252」、「ACP」などの値を割り当てようとしましたが、いずれもこの特定の文字を保持できませんでした。私が使用しているデータベースはSQLServer2008です。どんな助けでも大歓迎です。ありがとう。

参考までに、私はエンコードまたはデコードの手法を使用していません。テキストファイルにあるものをデータベースに戻そうとしているだけです。


返信ありがとうございます。ただし、列タイプを「varchar」から「nvarchar」に変更しても、実際には問題は解決しませんでした。データベーステーブルの列に「∩┐╜」と表示されるようになりました。アイデアの人は?? よろしくお願いします

4

2 に答える 2

1

ブリッジが言うように、あなたは必要になるでしょうNVARCHAR。また、ファイルをUTF-16に変換する必要があります。BULK INSERTこれは、を使用している場合でもUTF-8ではうまく機能しないためですNVARCHAR

詳細については、この質問を参照してください。

ファイルエンコーディングの変換に関してここにいくつかの質問がありますが、記録のためにこれは私のために働きました:

public static void  ConvertUtf8ToUtf16(string path, int bufferSize = 4096)
    {
    string  tempPath = path + ".tmp";

    char[]  buffer = new char[bufferSize];
    using (var input = File.OpenText(path))
    using (var output = new StreamWriter(tempPath, false, Encoding.Unicode))
        {
        int  index = 0;
        int  chars;
        while ((chars = input.Read(buffer, index, bufferSize)) > 0)
            output.Write(buffer, 0, chars);
        }

    // Swap the files
    File.Delete(path);
    File.Move(tempPath, path);
    }
于 2012-06-14T21:16:38.103 に答える
0

列タイプをに変更しますnvarchar

于 2012-06-14T21:15:55.937 に答える