|
|
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Windows XP SP3 RUS, кодировка консоли cp1251. Если параметры instr() формирую на клиете, то получаю ожидаемый результат: Код: plaintext 1. 2. 3. 4. 5. 6. Если один из параметров - значение поля, - внезапно е считается равным ё. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. DDL, VARABLES Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Аналогичное поведение и при обычном сравнении. Какого икса оно так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 07:50:14 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Stupid_BOTкодировка консоли cp1251Вы уверены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:03:33 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
miksoft, запускаю cmd.exe, выполняю chcp 1251, выполняю mysql -hhost -uuser -p database. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:21:08 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Stupid_BOTЗдравствуйте. Windows XP SP3 RUS, кодировка консоли cp1251. Если параметры instr() формирую на клиете, то получаю ожидаемый результат: Код: plaintext 1. 2. 3. ну так у вас DEFAULT CHARSET=utf8. Все что вы пишете в консоли пока дойдет до обращения к индекса таблицы, сконвертируется в utf8 и там уже применяются свои правила. Где, внезапно E = Ё, потом что collation там скорее всего default collation - utf8_general_ci. CI - это Case Insensitive. Вот все и работает как бы по-русски : 'е' равно 'ё'. слава ежикам ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 12:40:17 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Пока консоль открыта mysql> select "ё" = "е"; +-----------+ | "ё" = "е" | +-----------+ | 0 | +-----------+ 1 row in set (0.00 sec) mysql> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 13:31:30 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Не прочитал, протупил с ответом. Аналогичнё: mysql> select instr(subject, "ё") as yo, subject from catalog_group where iden=3; +----+---------------+ | yo | subject | +----+---------------+ | 6 | Рабочее место | +----+---------------+ 1 row in set (0.00 sec) mysql> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 13:39:49 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Короче хбз. Конверт и каст не вылечили. Но коды разные: mysql> select substr(subject, 6,1) as yo, ord(substr(subject, 6,1)) as cc from catalog_group where iden=3; +----+-------+ | yo | cc | +----+-------+ | ё | 53649 | +----+-------+ 1 row in set (0.00 sec) тут я поменял ё на е mysql> select substr(subject, 6,1) as yo, ord(substr(subject, 6,1)) as cc from catalog_group where iden=3; +----+-------+ | yo | cc | +----+-------+ | е | 53429 | +----+-------+ 1 row in set (0.00 sec) mysql> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 13:59:04 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
"типочехсум" что такое? :) Типа чексум? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:00:31 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
netwind, спасибо. Правила сравнения действительно _general_ci. ЗЫ: просто мысли вслух: ё = е это уж слишком... ну да пусть с ним... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:14:56 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
netwind, При чем тут CI не понял. Но нашел точно такую же таблицу в 1251 и ё не нашлось Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:30:15 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
> deblogger, > netwind, > > При чем тут CI не понял. Не просто CI, а utf8_general_ci . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:37:04 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Stupid_BOT, В общем-то понятно что консоль влияет, но почему-то только на ё. В уникоде оно все равно не пашет, так что ё с ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:40:11 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Stupid_BOT ЗЫ: просто мысли вслух: ё = е это уж слишком... ну да пусть с ним... в utf8 есть две "точки зрения" на эту проблему - secondary и primary разность. в mysql решили не усложнять язык и выбрали primary. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 14:47:36 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
> netwind, > > в utf8 есть две "точки зрения" на эту проблему - secondary и primary разность. > в mysql решили не усложнять язык и выбрали primary. Упс... Получается, что utf8_general_ci не везде одинаковая (зависит от реализации) ? Или я чего-то не понимаю, или одно из двух. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 15:20:49 |
|
||
|
win cp1251 utf8 е ё
|
|||
|---|---|---|---|
|
#18+
Stupid_BOT, ну проверьте в других средах, если так уж интересно. как минимум, я обнаружил что в php используется secondary difference 11651159 , где Ё =! E, но при желании можно выбрать другое сравнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 19:56:43 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38554397&tid=1835251]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 381ms |

| 0 / 0 |
