Опять =) Кодировка

Тема в разделе "Базы данных", создана пользователем Muntik, 14 авг 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Muntik

    Muntik

    Регистр.:
    3 июн 2008
    Сообщения:
    453
    Симпатии:
    88
    Инсталю на серв скрипт
    На серве UTF-8 Unicode (utf8)
    Кодировка сайта (ср1251)
    Создаю базу (cp1251)
    Сравнение (1251)

    и при попытке что-то изменить сделать (на сайте или в админке) или все это класическими ?????? ?? ?? или вот такое послание :

    PHP:
    A Mysql error has occurred while running the script
    The query you are trying to run is invalid
    Mysql Error Output
    Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
    SQL QuerySELECT count(*) AS is_duplicate FROM probid_users WHERE username='бугага'
     
  2. anarki

    anarki Прохожие

    Уж точно "бугага". Прозреваю, что у тебя таблица/поле в латин_шведиш. Посмотри таблицу(probid_users) и поле(username), какой у них collation стоит.
    Да, надеюсь самый первый запрос к субд - SET NAMES 'cp1251' ?
     
  3. ip027

    ip027 Создатель

    Регистр.:
    19 фев 2007
    Сообщения:
    22
    Симпатии:
    7
    Для работы с другой кодировкой (например win/cp1251) нужно после соединения и перед первым запросом в базу давать следующие команды:
    SET NAMES CP1251
    SET COLLATION_CONNECTION=CP1251_GENERAL_CI

    Для использования koi8-r команды выглядят так:
    SET NAMES KOI8R
    SET COLLATION_CONNECTION=KOI8R_GENERAL_CI
     
  4. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    Либо есть альтернатива в корень сайта положить .htaccess
    и в нем пописать дефолтную кодировку, делается это так
    AddDefaultCharset UTF-8

    либо если тебе нужно Windows-1251 что скорее всего, как я понял пропиши:

    AddDefaultCharset WINDOWS-1251

    Если помогло, то не откажусь от СПАСИБО ;-)
     
  5. Muntik

    Muntik

    Регистр.:
    3 июн 2008
    Сообщения:
    453
    Симпатии:
    88
    Всем спасибо с проблемой справился сам ))
     
  6. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    981
    Симпатии:
    319
    знакомая песня.
    дб целая (посмотри через нотепад) ?
    на форуме русские буквы видны как вопросики?
    Значит открывай файл отвечающий за настройки мскйул.
    my.ini

    [mysqld]
    default-character-set = cp1251
    init-connect = "set names cp1251"
    skip-character-set-client-handshake

    [client]
    default-character-set = cp1251

    и сохрани, рестарт серверу и будет тебе счастье. ;)
     
  7. sens7

    sens7 Постоялец

    Регистр.:
    9 авг 2008
    Сообщения:
    51
    Симпатии:
    7
    так ты изменишь кодировки для всех баз мускуля
    на робочем сервере...не самый правильный способ
     
  8. Danl

    Danl Писатель

    Регистр.:
    26 авг 2008
    Сообщения:
    2
    Симпатии:
    0
    У меня была похожая проблема, на сервере латин_сведиш, инсталируемый форум в UTF8. При конвертации базы одни краказябы.
    Пришлось делать дамп БД, локально ее переконвертировать в UTF8 посредством проги RJ TextEd и потом заливал обратно.
    Мне помогло, возможно и Вам поможет ;)
     
  9. karakuly

    karakuly Создатель

    Регистр.:
    15 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Вопрос

    Такая проблема. В Денвере у меня Кодировка по умолчанию, сопоставление подключения и сама база в cp1251. Перенесли на другой комп. У чувака всё стоит отдельно. Но кодировка и сопоставление по умолчанию utf8. Пробовали менять настройки в my.ini - не помогает. Хелп
     
  10. ashotik

    ashotik

    Регистр.:
    7 авг 2008
    Сообщения:
    176
    Симпатии:
    20
    karakuly прочти выше что написали про
    Это порой проще сделать чем конфигурить чужую систему.
     
Статус темы:
Закрыта.