Удаление символов диакритических знаков из арабского текста

У меня есть база данных с сопоставлением utf8 / utf8_bin. DB имеет арабский текст с символами диакритического знака (kasar и т.д.). Я хочу к искомому тексту без символов диакритического знака.

То, что я сделал, записал я 'как' запрос...

WHERE replace(field1,0x[CODE],'') like '%[arabic text]%' --- where [CODE] is the accent char.

Это хорошо работает, когда я пишу статический utf арабский текст вместо field1. Но это не заменяет, когда это работает от поля базы данных.

Может быть поле дб, имеют кодирование latin1. Как я могу зафиксировать / проверяют эту проблему.

Спасибо.

1
задан echo_Me 31 March 2013 в 20:55
поделиться

1 ответ

utf8_bin - это двоичное сопоставление - оно чрезвычайно буквальное и строгое при сравнении символов.

utf8_general_ci более мягкий и нормализует умляуты и акценты в их «базовой» версии:

Ä => A

Ü => U ] и т. д.

Я никогда раньше не работал с арабским языком, поэтому не знаю, применимо ли он и к этим акцентам, но я ожидал этого.

У вас должна быть возможность временно использовать мягкое сопоставление, например:

WHERE field1 like '%[arabic text]%' COLLATE utf8_general_ci;
2
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: