文字🤘のUnicodeコードポイントは
BMPの外部でUnicode文字を処理するには、補足文字をサポートする照合
、* _SC
という名前 :
このSQLステートメントの結果を比較する
select
nchar(unicode(N'🤘' collate Latin1_General_100_CI_AS_SC)) as EmojiSC,
unicode(N'🤘' collate Latin1_General_100_CI_AS_SC) as EmojiSCUnicode,
cast(N'🤘' as varbinary) as EmojiBinary,
cast(nchar(unicode(N'🤘')) as varbinary) as EmojiConvBinary,
unicode(N'🤘') as EmojiUnicode
Latin1_General_CI_AS
を使用してデータベースに対して実行された場合
EmojiSC EmojiSCUnicode EmojiBinary EmojiConvBinary EmojiUnicode
NULL 129304 0x3ED818DD 0x3ED8 55358
対Latin1_General_100_CI_AI_SC
に設定されたデータベース
EmojiSC EmojiSCUnicode EmojiBinary EmojiConvBinary EmojiUnicode
🤘 129304 0x3ED818DD 0x3ED818DD 129304
「🤘
」が表示されるのはなぜですか 「?
U + 1F918のUTF-8エンコーディングは、 0xF0 0x9F 0xA40x98<です。 / a> 、および文字は、これらのコードをANSI文字 として解釈した結果です。 。
「�」が表示されるのはなぜですか?
文字�はUnicode
これは、U+D83Eが0xD83E 0xDD18
としてエンコードされたコードポイントの最初の単語 。
表示されているものではなく、保存されているものを確認してください
Unicodeデータの表示は難しい場合があり、内部で何が起こっているかを知る最も効率的な方法は、バイトを調べることです。 TSQLでは、cast(... as varbinary)
を使用します Unicodeデータ操作がどこでうまくいかないかを分析します。