最近、SQL Serverでvarchar(120)として保存されているフィールドに関連するエンコーディングに問題がありました。SSMSでは、varcharは次のように表示されます。
「ジョンベンを殺したのは誰?」
ただし、Pythonに取り込むと、次のようになります。
私はこれをPython側から調査しましたが、奇妙なことは何も起こっていません。私の理論では、SQL Serverのvarcharは、PythonではSSMSとは異なる方法で表示されるUTF-8文字を受け入れます。SQL Serverでのエンコードについてはあまり詳しくありません。誰かが私に次のことを知らせてくれますか?
- SSMSでvarcharのエンコーディングを表示する方法はありますか?たとえば、現在SSMSからのコンマを表示する代わりに、\ x82を参照してください。
- SQL Server 2008を使用しています。インポート/エクスポートツールを使用したり、フラットファイルにダンプしたりせずに、UTF-8文字のエンコードをASCII文字に変更する方法はありますか?つまり、クエリを介してこの変換を行うことができますか?
- クエリを介してプログラムで問題のあるレコードを特定する方法はありますか(問題は、ASCIIではサポートされていないUTF-8文字として定義されています)。
前もって感謝します!
使用sp_help N'table_name';
して、このVARCHAR
列の照合順序は次のとおりSQL_Latin1_General_CP1_CI_AS
です。
sp_help N'table_name';
です。「名前」に基づいて列を確認してから、「collation_name」列を確認します。
VARCHAR
列はどの照合順序を使用していますか?