sql >> データベース >  >> RDS >> Mysql

MySQLのUnicode(16進数)文字リテラル

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



    1. トップ5のMySQL監視ツール

    2. AUTONOMOUS_TRANSACTION

    3. Oracle SQL Developer:失敗-テストに失敗しました:ネットワークアダプタが接続を確立できませんでしたか?

    4. OracleDatabaseのPL/SQLコレクション方式の概要