varchar型英語中国語差を保存

今日、同僚がこの問題に注意を払っていないデータベースタイプvarchar型のnvarchar型を使用する必要があります使用して、説明するためにブログを添付し、通常動作しない中国人を保存する必要があり、私の同僚のおかげで、以下に特別に記録さを指摘したテキストです....

SQL Serverで、varchar型は、データベースを保存するために英語の文字は、タイプフィールドがvarchar型であれば、それだけで単語を取る、SQL Serverに保存漢字は2バイトとして保存されます、データを格納するための単一のバイトでありますタイプフィールドがnvarchar型であればセクション、そして、それは2つのバイトを占有します。保存された場合に漢字文字が2バイトに等しいので、VARCHAR(40)20個の漢字を格納することができるので、VARCHAR(40)は、40文字のバイト長、中国語の文字を格納することができます。NVARCHAR(40)は、長さが文字で80のバイトまで保存することができます40個の漢字を、保存することができます。。保存された文字の種類に関してはnvarchar
通常の状況下では、我々は、varchar型は中国語の文字を格納することができます使用していますが、オペレーティングシステムが発生した場合、中国語フォントのための英語のオペレーティングシステムおよびサポートは、SQL Serverのストアド漢字varchar型では、包括的ではありません文字化けが表示されます(??として示されています)。そして、通常の状況下では、ホストは、中国の環境をサポートしますので、あなたは、開発段階でのデータを格納するのにvarchar型を使用する場合は見つけることができません。ほとんどの場合、そこに展開されたときに問題になることはありません。しかし!ホストオペレーティングシステムの展開が英語であり、そして中国の環境をサポートしていない場合、問題が出てきました。中国を格納するためのすべてのvarcharフィールドが(??として示されている)が文字化けすることになるだろう。しかし、通常の状況下では、あなたが結果を格納するために、データの間違った種類を使用しているので、あなたは、オペレーティングシステムのロケールを設定しようとすると、中国語フォントをインストールしようとし、これを知ることはできません。これらの問題を解決することはできません、問題の唯一の解決策は、データベースのフィールドタイプの人格がNVARCHAR(またはnchar型)です。より身近な友人は、すべてのデータベースを変更するために、再度、展開段階を知っている必要がありますプロジェクト管理は恐ろしいことです。

(電源を入れます:https://www.cnblogs.com/suncan0/p/4738255.html

おすすめ

転載: www.cnblogs.com/hujinlong/p/11284211.html