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バイトシーケンスです。