Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й" / 7 сообщений из 7, страница 1 из 1
12.12.2014, 15:51
    #38832622
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
hi all

Создаём коллацию, бесчувственно относящуюся к регистру и "акцентам":

Код: plaintext
create collation co_utf8_ci_ai for utf8 from unicode case insensitive accent insensitive; commit;

Проверяем сопоставлением букв "е" и "ё" (тремя способами: "=", "like" и "similar to") - всё пучком:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> select iif( _utf8 'её' collate co_utf8_ci_ai  =  _utf8 'еЕ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
           1

SQL> select iif( _utf8 'её' collate co_utf8_ci_ai  similar to  _utf8 'еЕ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
           1

SQL> select iif( _utf8 'её' collate co_utf8_ci_ai  like  _utf8 'еЕ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
           1

А теперь то же самое, но с букофками "и" & "й" (хотя вопрос еще, с какого будуна "й" считается "акцентом"):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> select iif( _utf8 'нии' collate co_utf8_ci_ai  =  _utf8 'ниЙ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
            0 

SQL> select iif( _utf8 'нии' collate co_utf8_ci_ai  like  _utf8 'ниЙ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
           1

SQL> select iif( _utf8 'нии' collate co_utf8_ci_ai  similar to  _utf8 'ниЙ' collate co_utf8_ci_ai, 1, 0)  from rdb$database;

        CASE
============
           1
В чём причина странности сопоставления на равенство "и" vs "й" ? (или же, наоборот, странность как раз в их сопоставлении по like & similar to ?)
...
Рейтинг: 0 / 0
12.12.2014, 15:59
    #38832641
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
Таблоид> (хотя вопрос еще, с какого будуна "й" считается "акцентом"):
Таблоид> странность как раз в их сопоставлении по like & similar to ?)

Именно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.12.2014, 16:12
    #38832673
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
Впрочем, проверять надо, может в каких-то
стандартах это принято за "один" символ для AI, ХЗ.

http://collation-charts.org/mssql/mssql.0419.1251.Cyrillic_General_CS_AI.html
http://collation-charts.org/mssql/mssql.0419.1251.Cyrillic_General_CI_AI.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.12.2014, 16:26
    #38832714
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
Гаджимурадов Рустам,

в обеих приведенных документах "и" и "й" - это *не* акценты (в отличие от "е" и "ё").
...
Рейтинг: 0 / 0
12.12.2014, 17:57
    #38832843
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
Угу, и я о том же. Я не знаю, кто отвечал за кириллические кодировки в FB - вряд ли Кальтенбруннер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.12.2014, 18:06
    #38832852
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
За них теперь отвечает IBM с его ICU.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.12.2014, 19:18
    #38833204
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й"
Dimitry Sibiryakov> За них теперь отвечает IBM с его ICU.

Значит, надо IBM-овцам сообщить, пусть исправляют.
Впрочем, я не уверен, что ошибка у них, потому как и
string comparer, и оба collation-сортировщика сортируют
вроде как правильно http://demo.icu-project.org/icu-bin/collation.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UTF8, кириллица и accent insensitive: странности при сравнении букв "и" & "й" / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]