文字セットとして_utf8mb4
_を使用し、照合として_utf8mb4_Standard
_を使用するデータベースに基づくWebアプリケーションがいくつかあります。
この設定で任意の文字を使用できることがわかりました。
SQL Server Expressでは、状況はあまり明確ではありません。
Standard
に切り替えると、_Latin1_General_CI_AS
_照合順序が選択されます。
しかし、これがどの文字エンコーディングであり、_utf7mb8
_ MySQLテーブルからSQL Serverにデータを引き継ぐ場合にシナリオにどのような影響を与えるかはわかりません。
SQL Serverのデータ型定義を調べると、Unicode型と非Unicode型があることがわかります。だから、照合が実際にそれがどのように格納されるかに影響を与えるかどうか疑問に思っています:
nchar
、nvarchar
、またはnvarchar(max)
を使用している場合、UTF-16を使用しているため、安全な側面にいるようです。
しかし、照合順序_Latin1_General_CI_AS
_はどういう意味ですか?
特に漢字を使用している場合、これはどのように動作しますか?
これはかなり古いことを知っています。しかし、同様の問題があります...
But what does the collation Latin1_General_CI_AS mean, then?
各照合名の残りのコード(_CS_AI_WS_SCなど)は、照合で事前構成されたオプションを示します。たとえば、CIは大文字と小文字を区別せず、ASはアクセントを区別することを意味します。説明の列は、オプションコードの意味を示しています。詳細については、Microsoftの記事 「照合順序とUnicodeのサポート」を参照してください。 〜 RedGate から取得
マイクロソフトから直接 質問の内訳に関する情報が必要な場合は、こちらをご覧ください。
UTF8MB4
の代わりのMySQL
はありませんが、ここにリストされているように絵文字 を使用できます。
「SQL Server Unicode/NVARCHAR文字列を絵文字または補足文字に設定するにはどうすればよいですか?」 エンコーディングの詳細については、こちらをご覧ください。
MSSQL Collations 2017の詳細を次に示します。
最後に、これを読んでください。これは、観点から分解した履歴のナイスバージョンです。