|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Есть два хостинга на одном MySQL 4.0.17, на другом MySQL 3.23.56 Есть табличка CREATE TABLE `varchar_test` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM ROW_FORMAT=DYNAMIC AUTO_INCREMENT=5 ; INSERT INTO `varchar_test` VALUES (1, 'test'); INSERT INTO `varchar_test` VALUES (2, ' test '); INSERT INTO `varchar_test` VALUES (3, '¤test¤'); INSERT INTO `varchar_test` VALUES (4, '©test©'); При выполнении этого запроса на MySQL 4, все ок... А на MySQL 3 Ответ MySQL: #1062 - Duplicate entry '©test©' for key 2 Насколько я понял, проблема в том что мускул 3, считает все спецсимволы одинаковыми! ;( Кто виноват, куда копать, ну или где почитать про это? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 11:52 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
почему это неправильно? думаю, дело в кодировке, надо посмотреть во что превращаются эти ©, не в вопросительные ли знаки. и сравнить какие кодировки базы там и там ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 12:35 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
там кои8р , и здесь кои8р... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 12:40 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
CREATE TABLE `varchar_test` ( `id` int(10) unsigned NOT NULL auto_increment, `name` binary varchar(64) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM ROW_FORMAT=DYNAMIC AUTO_INCREMENT=5 ; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 15:22 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Есть у меня подозрение что в этой строчке INSERT INTO `varchar_test` VALUES (1, 'test'); 1 - ни что иное как задание значение столбцу который является AUTO_INCREMENT. Вывод - надо так: INSERT INTO `varchar_test`(Name) VALUES ('test'); mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 15:46 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
махоуни, кажись, в автоинкремент можно явно писать что хочешь, инкремент происходит если нулл писать... скорее всего дело в © пишет же #1062 - Duplicate entry ' ©test© ' for key 2 настаиваю, что дело в кодировках. ты разбираешься в них, уточни, действительно ли у него "там кои8р , и здесь кои8р..." после того как ничего не поможет, придется пользоваться советом Felixа. тоьлко он мне не нравится, потому что запрос select * from varchar_test where name like '%copy%' будет находить и эти © тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 16:00 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
А пофиг, эти два символа не могут иметь один и тот-же код в одной и той же кодировке. MySQL преобразрваний никаких не производит. mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 16:06 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
а если посмотреть, что реально внеслось в табличку, '¤test¤'? skol, что делает binary? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 16:11 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Гы, по поводу что MySQL не делает никаких преобразований неправда ваша! Эти преобразования какраз и зависят от чарсета установленного для базы. Преобразования ети делаются при поиске и упорядочивании и называются COLLATION TABLE за счет этого MySQL при like 'абвг' найдет и АбВг и АБВГ и абвг, т.е. в MySQL 3.23 символы © в текущем коллейшене равны BINARY запрещает такие вещи, и сравнение происходит как для массива байтов. ЗЫ: Точно не помню, но можно попробовать не поле делать бинарным а индекс UNIQUE KEY `name` (binary `name`) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 18:09 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
2 skol, а вот тут твоя не права! Сами данные хранятся без изменения. А все настройки CHARSET как раз и влияют на работу функций UPPER, LOWER, LIKE... Потому fedd прав, давайте же скорее смотреть а что же у нас в базе хранится! mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 20:18 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Ну дык я об этом и говорил, я имел ввиду что оно не меняет сами данные, но меняет работу с ними, поэтому и проявляется такой side-effect ЗЫ: можно просто попробовать select UPPER('¤test¤'), UPPER('©test©'), UPPER('¤test¤') = UPPER('©test©'); И посмотреть к чему это приведет обе строки ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 11:48 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
2 skol: ругается на binary в обоих случаях... 2 fed: как посмотеть во что превращаются эти ©? кодировки смотрел командой \s из консоли Client characterset: koi8_ru Server characterset: koi8_ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 12:03 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
У меня при работе с консоли значки © преобразовались во что-то немыслимое и консоль решила выдать мне help А вот символы ¤ преобразовались в точки Но это все в консоли... mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 12:11 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Имеем ASCII: © - 169; ¤ - 164 Делаем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 12:25 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
insert into varchar_test values (1,concat(char(164),'test',char(164))); insert into varchar_test values (2,concat(char(169),'test',char(169))); #1062 - Duplicate entry '©test©' for key 2 Ну что с этими символами делать... мну нужно до февраля перекинуть базу на MySQL 3... а никак не выходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2004, 10:47 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
А вот с BINARY у меня все нормально - проверь еще раз! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2004, 11:47 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2004, 11:49 |
|
Проблема со спецсимволами
|
|||
---|---|---|---|
#18+
Все заработало! 2ALL: спасиб всем кто откликнулся! 2mahoune: Готов проставить пиво! ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2004, 12:15 |
|
|
start [/forum/topic.php?fid=47&msg=32390483&tid=1855458]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 454ms |
0 / 0 |