- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вот и я столкнулся с проблемой:
Исходные данные:
---------------------------
MySQL 4.1.21
Изначально у хостера (США) стояла кодировка всех параметров latin1 (кроме character_set_system = utf8).
Я, как умный человек, установил правильный charset & collation для работы с windows-1251:
С такими установками залил базу, при этом и у базы и у таблиц кодировка тоже cp1251.
Казалось бы все правильно, но с поиском проблемы.
оператор LIKE вообще бред ищет,
а FullText search (match..against) ищет настолько интересно, что логику выловить не удается вообще :eek:
Естественно, менять какие-либо параметры MySQL хостер мне не позволит.
Попробовал использовать Utf8 (все заново устанавливал, пересоздавал, заливал) - грабли с поиском остались...
Может есть у кого какие идеи.
Все нагугленные варианты были опробованы в течение 2-х дней - результат нулевой.
Заранее спасибо за дельные советы.
Если всякие set names и CREATE TABLE ... ENGINE=InnoDB DEFAULT CHARSET=utf8 не помогли...
Доступ к шеллу есть? Помнится, были какие-то случаи когда умолчальная кодировка в клиенте не менялась никакими силами, только прямым заданием.
Все запросы, не использующие LIKE работают корректно? Если да то, вероятно, дело в сборке БД.
У меня на одной железке стоит 4.1.18 под UTF - базы с самыми разными кодировками работают без проблем. С 5.хх тоже всё в порядке, такого глюка не было ни разу.
SHOW VARIABLES LIKE 'char%'
Что выдается по этому запросу?
Ну и в помощь Вам URL:
http://forum.dklab.ru/denwer/base/ZnakiVoprosaVmestoKirillitsiVMysql4.html
SHOW VARIABLES LIKE 'char%'
Что выдается по этому запросу?
Ну и в помощь Вам URL:
http://forum.dklab.ru/denwer/base/ZnakiVoprosaVmestoKirillitsiVMysql4.html
Ну нет у меня проблемы вопросиков! Проблема с работой некоторых строковых функций.
Например, в запросе, испоьзующем составной fulltext - индекс, запрос по слову "хостинг" показывает правильные результаты, а по слову "искусство" - вываливает совсем неожиданные результаты.
Все запросы, не использующие LIKE работают корректно? Если да то, вероятно, дело в сборке БД.
Пока заметил некорректную работу LIKE и MATCH..AGAINST. ORDER BY сортирует правильно. Как через шел поменять кодировку по умолчанию? (доступ есть)
Пока заметил некорректную работу LIKE и MATCH..AGAINST. ORDER BY сортирует правильно. Как через шел поменять кодировку по умолчанию? (доступ есть)
Попробуйте выполнить из шелла "проблемный" запрос с указанием и без (кодировки и COLLATION)
типа mysql -u user -p
>запрос;
и
типа mysql --default-character-set=cp1251 -u user -p
>запрос;
И посмотрите какой collation указан для таблиц в базе (могли криво создаться, надо или utf8_general_ci или аналогично под 1251)
Если одинаковый результат - то можно ещё покопаться, но в целом похоже таки именно на какой то дефект именно этой версии mysql
И посмотрите какой collation указан для таблиц в базе (могли криво создаться, надо или utf8_general_ci или аналогично под 1251)
Если одинаковый результат - то можно ещё покопаться, но в целом похоже таки именно на какой то дефект именно этой версии mysql
Фрагмент запроса SHOW CREATE TABLE (для остальных аналогично):
Уже написал хостеру, но думаю, вряд ли американцы будут разбираться с работой непонятного им языка...
По умолчанию у хостера следующие переменные:
Если все оставить как есть, только подключаться и принимать данные как cp1251, то с данными все нормально, но ни одна строковая функция не работает как следует, ORDER BY сортирует неправильно. С созданием БД и таблиц как cp1251 сортировка начинает работать правильно, но некоторые вещи продолжают шалить. UTF8 тоже не привносит ярких и красочных впечатлений 🙄
Только что ответил хостер. Как и предполагал, ничего дельного я не узнал:
ни одна строковая функция не работает как следует
CREATE TABLE `ttt` (
`tt` VARCHAR( 244 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
) TYPE = MYISAM ;
загрузите базу на хост, войдите под шеллом, и запустите команду (для latin1)
iconv -f utf8 -t latin1 -c < 7777.sql | sed s/latin1/cp1251/ | perl -ne 's/NAMES utf8/NAMES cp1251/; print' > 999.sql
7777.sql исходная базв, базу 999.sql получите в ср1251 и будет вам счастье, и не мучайтесь с кодировками)))
CREATE TABLE `ttt` (
`tt` VARCHAR( 244 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
) TYPE = MYISAM ;
Я подозреваю, что при создании таблицы с параметром DEFAULT CHARSET cp1251 и так все поля будут с этим чарсетом.
загрузите базу на хост, войдите под шеллом, и запустите команду (для latin1)
iconv -f utf8 -t latin1 -c < 7777.sql | sed s/latin1/cp1251/ | perl -ne 's/NAMES utf8/NAMES cp1251/; print' > 999.sql
7777.sql исходная базв, базу 999.sql получите в ср1251 и будет вам счастье, и не мучайтесь с кодировками)))
Спасибо за такую идею! Нужно попробовать. Но имеет ли смысл в моем случае такая конвертация, если у базы и всех ее таблиц установлен cp1251 и все данные были залиты с этим CHARSET? Во всяком случае попробую.