web-dev-qa-db-ja.com

MySQLのutf8mb4文字セットに相当するSQL Serverは何ですか?

文字セットとして_utf8mb4_を使用し、照合として_utf8mb4_Standard_を使用するデータベースに基づくWebアプリケーションがいくつかあります。

MYSQL

この設定で任意の文字を使用できることがわかりました。

SQL Server Expressでは、状況はあまり明確ではありません。

Standardに切り替えると、_Latin1_General_CI_AS_照合順序が選択されます。

しかし、これがどの文字エンコーディングであり、_utf7mb8_ MySQLテーブルからSQL Serverにデータを引き継ぐ場合にシナリオにどのような影響を与えるかはわかりません。

enter image description here

SQL Serverのデータ型定義を調べると、Unicode型と非Unicode型があることがわかります。だから、照合が実際にそれがどのように格納されるかに影響を与えるかどうか疑問に思っています:

enter image description here

ncharnvarchar、またはnvarchar(max)を使用している場合、UTF-16を使用しているため、安全な側面にいるようです。

しかし、照合順序_Latin1_General_CI_AS_はどういう意味ですか?

特に漢字を使用している場合、これはどのように動作しますか?

7
Matthias

これはかなり古いことを知っています。しかし、同様の問題があります...

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 Collat​​ions 2017の詳細を次に示します。

最後に、これを読んでください。これは、観点から分解した履歴のナイスバージョンです。

0
JayRizzo