MySQL Добавить Custom Charset к utf8mb4, а не utf8
Мне нужно добавить пользовательский набор символов на сервер MySQL, чтобы улучшить возможности поиска, и я действительно смог это сделать, но в utf8_charset, а не в его версию mb4. и я не могу найти даже в документации MySQL ничего относительно MB4
как они упоминали в документации, я отредактировал файл /usr/share/MySQL/charsets/Index.xml
и под <charset name="utf8">
Я добавил свое подмножество, так как не смог найти подмножество для utf8mb4
<collation name="utf8_arabic_ci" id="1029">
<rules>
<reset>\u0627</reset> <!-- Alef 'ا' -->
<i>\u0623</i> <!-- Alef With Hamza Above 'أ' -->
<i>\u0625</i> <!-- Alef With Hamza Below 'إ' -->
<i>\u0622</i> <!-- Alef With Madda Above 'آ' -->
</rules>
<rules>
<reset>\u0629</reset> <!-- Teh Marbuta 'ة' -->
<i>\u0647</i> <!-- Heh 'ه' -->
</rules>
<rules>
<reset>\u0000</reset> <!-- Ignore Tashkil -->
<i>\u064E</i> <!-- Fatha 'َ' -->
<i>\u064F</i> <!-- Damma 'ُ' -->
<i>\u0650</i> <!-- Kasra 'ِ' -->
<i>\u0651</i> <!-- Shadda 'ّ' -->
<i>\u064F</i> <!-- Sukun 'ْ' -->
<i>\u064B</i> <!-- Fathatan 'ً' -->
<i>\u064C</i> <!-- Dammatan 'ٌ' -->
<i>\u064D</i> <!-- Kasratan 'ٍ' -->
</rules>
</collation>
и это работает как шарм, однако, я не могу изменить всю мою коллизию столбцов БД для использования с utf8mb4_unicode_ci
в utf8_unicode_ci
или даже заказной мой utf8_arabic_ci
1 ответ
Я думаю, вам нужно будет добавить совершенно новую кодировку, см. https://dev.mysql.com/doc/refman/8.0/en/ldml-collation-example.html .
<charset name="utf8mb4">
...
<collation name="utf8mb4_phone_ci" id="1029">
<rules>
<reset>\u0000</reset>
<i>\u0020</i> <!-- space -->
<i>\u0028</i> <!-- left parenthesis -->
<i>\u0029</i> <!-- right parenthesis -->
<i>\u002B</i> <!-- plus -->
<i>\u002D</i> <!-- hyphen -->
</rules>
</collation>
...
</charset>