16進リテラル
を指定できます (またはバイナリリテラル
) 0xを使用する 、 x'' 、または X'' :
select 0xC2A2;
select x'C2A2';
select X'C2A2';
ただし、注意 戻りタイプはバイナリ文字列であるため、すべてのバイトが文字と見なされます。これはchar_lengthで確認できます :
select char_length(0xC2A2)
UTF-8
が必要な場合 代わりに文字列を使用する必要があります。 convert コード>
:
select convert(0xC2A2 using utf8mb4)
そして、その C2 A2 を見ることができます UTF-8では1文字と見なされます:
select char_length(convert(0xC2A2 using utf8mb4))
また、 convert なので、無効なバイトについて心配する必要はありません。 それらは自動的に削除されます:
select char_length(convert(0xC1A2 using utf8mb4))
ご覧のとおり、出力は 0です。 C1 A2 は無効なUTF-8バイトシーケンスです。