データベースにデータを保存する際に、MySQL サーバーが文字 'æ' と 'ae' の違いを認識しないため、問題が発生します。私の目標は、これらの文字の違いを認識する文字セットを見つけることであり、見つけました (utfmb3) が、廃止される予定であり、新しい代替 (utfmb4) はそれらの文字を異なるものとして認識しません。
私が試したこと:
set names 'utf8mb3';
select 'æ' = 'ae';
この select は0
(false) を返します。これは、この文字セットがこれらを異なる文字として認識していることを意味します。それはまさに私が必要としているものですが、MySQL は警告を表示します:
「utf8mb3」は非推奨であり、将来のリリースで削除される予定です。代わりに utf8mb4 を使用してください
しかし、私がするとき
set names 'utf8mb4';
select 'æ' = 'ae';
この選択は を返します。これは、これらを同じ文字として認識している1
ことを意味します。これは良くありません..utf8mb4
だから、私のジレンマは、どの文字セットを使用するのですか? を使っutfmb3
ていたら、すぐに廃止されてしまうのでダメです。を使用するutfmb4
と、正しく動作しません。