ФорумПрограммированиеPHP для идиотов → Кодировка мускула 0x37373720d0a0d0b0d0b7d0b4d0b5d0bb

Кодировка мускула 0x37373720d0a0d0b0d0b7d0b4d0b5d0bb

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 27 ноября 2007 г. 12:55

    У мну phpMyAdmin живет своей жизнью(

    Допустим делаю ОБЗОР полей…вместо текста вообще написано - [BLOB …],данные экпорта - в таком виде - 0x37373720d0a0d0b0d0b7d0b4d0b5d0bb.

    Как все изначально сделать?Таблиц много
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 ноября 2007 г. 14:26, спустя 1 час 31 минуту 47 секунд


    У мну phpMyAdmin живет своей жизнью(

    Допустим делаю ОБЗОР полей…вместо текста вообще написано - [BLOB …],данные экпорта - в таком виде - 0x37373720d0a0d0b0d0b7d0b4d0b5d0bb.

    Как все изначально сделать?Таблиц много


    покажи часть запросов из экспорта!
    adw/0
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 27 ноября 2007 г. 22:38, спустя 8 часов 11 минут 41 секунду

    Если написано BLOB, значит у тебя и поле BLOB а не TEXT.
    Я сам не люблю этого, но BLOB предназначен вроде не только для текста.
    А еще самый мерзкий глюк(?), это когда пытаешься изменить данные через phpMyAdmin. Вносишь новые, жмешь сохранить, а в итоге получаешь новые данные и чистое поле BLOB. Куда из него данные деваются до сих пор не могу понять. Я как-то таким образом кучу текста угробил. Причем через UPDATE всё отлично работает, а через интерфейс вот такое вылазиет.
    from TRIAL with LOVE
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 28 ноября 2007 г. 2:38, спустя 4 часа 4 секунды

    BLOB, это бинарные данные, вот они и выводятся в виде подходящем для текстового представления.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2007 г. 4:57, спустя 2 часа 18 минут 54 секунды

    CREATE TABLE `handbooktree` (
    `section_id` bigint(20) NOT NULL default '0',
    `section_left` bigint(20) NOT NULL default '0',
    `section_right` bigint(20) NOT NULL default '0',
    `section_level` int(11) default NULL,
    `section_name` varchar(255) collate cp1251_bin NOT NULL default '',
    `section_text` text collate cp1251_bin NOT NULL,
    `heading` text collate cp1251_bin NOT NULL,
    `input` varchar(35) collate cp1251_bin NOT NULL default '',
    PRIMARY KEY (`section_id`),
    UNIQUE KEY `section_id` (`section_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin;


    – Дамп данных таблицы `handbooktree`


    INSERT INTO `handbooktree` VALUES (1, 1, 8, 0, 0xd0a1d0bfd180d0b0d0b2d0bed187d0bdd0b8d0ba, 0x746578740d0a, '', 0x3038653336383162373366626364656466323732663030623335396538363939);
    INSERT INTO `handbooktree` VALUES (24, 2, 3, 1, 0xd09ad0b0d182d0b0d0bbd0bed0b3d0b8, 0x746578740d0a, '', 0x3532323933663937366238323765663432373936346237313839323931376531);
    INSERT INTO `handbooktree` VALUES (25, 4, 5, 1, 0xd09dd0bed180d0bcd0b0d182d0b8d0b2d0bdd0b0d18f20d0b1d0b0d0b7d0b0, 0x746578740d0a, '', 0x6437333037333464313061633863666631643565623033363865303837306261);
    INSERT INTO `handbooktree` VALUES (26, 6, 7, 1, 0xd0a1d0bbd0bed0b2d0b0d180d18c20d182d0b5d180d0bcd0b8d0bdd0bed0b2, 0x746578740d0a, '', 0x3564303165646661363265343061626533363263613632363531363533643030);


    1. pizda.JPG (132)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 28 ноября 2007 г. 5:03, спустя 6 минут 21 секунду

    cp1251_bin разгадка кроется сдесь :))

    Терминология: CHARACTER SET, COLLATION и зачем все это нужно

    CHARACTER SET - это некий набор символов aka кодировка. Разные CHARACTER SET включают в себя различные наборы символов. Различные CHARACTER SET могут включать примерно одинаковые наборы символов но в различном порядке (см. например koi8-r и cp1251) MySQL необходимо знать какой CHARACTER SET будет использован для данных в таблице, чтобы корректно проводтиь сортировку и индексацию данных. COLLATION описывает способ, которым следует упорядочивать и сравнивать данные в БД. Для одного и того же CHARACTER SET существует как правило несколько COLLATION - например: cp1251_general_ci - default collation, нечуствительный к регистру. cp1251_bin - то же самое, но с учетом регистра.
    MySQL по умолчанию не чуствителен к регистру!


    http://www.linux.by/wiki/index.php/FAQ_PHP_MySQL_charset
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 28 ноября 2007 г. 5:36, спустя 32 минуты 32 секунды


    Я поменял всё на cp1251_general_ci

    Как binary то убрать?


    Поменяй сравнение в каждом поле из cp1251_bin > cp1251_general_ci
    И все встанет на круги своя
    adw/0
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2007 г. 5:54, спустя 17 минут 46 секунд

    Поменяй сравнение в каждом поле из cp1251_bin > cp1251_general_ci
    И все встанет на круги своя


    эх если бы только так(
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 28 ноября 2007 г. 5:57, спустя 3 минуты 10 секунд


    Поменяй сравнение в каждом поле из cp1251_bin > cp1251_general_ci
    И все встанет на круги своя


    эх если бы только так(


    только что сам проверял… все именно так
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!