Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таблица с текстом в UTF-8 
:(
    Опции темы
Elfet
  Дата 19.9.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Всем привет!
Опять проблемы с этими кодировками. Как правильно создать таблизу для работы с UTF-8 в MySQL?
Я делаю вот так, но это похоже не всегда работает:
Код

CREATE TABLE `rooms` (
   `id` varchar(255) NOT NULL,
   `name` text character set utf8 collate utf8_general_ci NOT NULL,
   `password` varchar(255) character set utf8 collate utf8_general_ci NOT NULL,
    KEY `id` (`id`)
    ) DEFAULT CHARSET=utf8;




--------------------
PM MAIL WWW Skype   Вверх
skyboy
Дата 19.9.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Elfet @  19.9.2008,  17:50 Найти цитируемый пост)
но это похоже не всегда работает:

ну, да. до версии 4.1 кодировка задавалась на всю БД. но найит версию до 4.1 надо постараться.
Цитата(Elfet @  19.9.2008,  17:50 Найти цитируемый пост)
Как правильно создать таблизу

с твоим кодом у тебя проблемы?
PM MAIL   Вверх
Elfet
Дата 19.9.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Да, на 5.0 пришлось изменить сравнение на cp1251_general_cs


--------------------
PM MAIL WWW Skype   Вверх
skyboy
Дата 19.9.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



не понимаю. у тебя проблема в работе какой-то программы с БД или в работе самой БД?
PM MAIL   Вверх
Elfet
Дата 19.9.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Проблема в работе моего скрипта с БД. На разных версиях MySQL разные проблемы. Как правильно работать с мускулом в UTF-8?  smile 


--------------------
PM MAIL WWW Skype   Вверх
skyboy
Дата 19.9.2008, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Elfet @  19.9.2008,  21:13 Найти цитируемый пост)
Проблема в работе моего скрипта с БД. 

ээээ....и где этот таинственный скрипт?
не могу сказать, что давно работаю с PHP, но за два года никаких "универсальных" ошибок MySQL не встречал. Практически всегда были проблемы либо скрипта, либо механизма работы скрпта с БД. т.е. проблему без анализа кода скрипта не решить.
PM MAIL   Вверх
Elfet
Дата 20.9.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Скрипт очень большой, во вырезка из него:
Код

    function connect()
    {
        $this->id = mysql_connect($this->hostname,$this->username,$this->password);
        if( !$this->id )
        {
            @elfchat_error('noconnect');
        }
        if(!mysql_select_db($this->dbname, $this->id))
        {
            @elfchat_error('noselect');
        }
        mysql_query("SET NAMES 'utf-8'");
    }

А остальное просто загрузка по mysql_query



--------------------
PM MAIL WWW Skype   Вверх
teroni
Дата 21.9.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 3
Всего: 22



Может просто дефис в кодировке лишний?
Код

SET NAMES 'utf8'

PM MAIL   Вверх
nextzi0
  Дата 21.9.2008, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Обьясните, в чем преимущество кодировки utf8, когда большинство ресурсов работают с cp1251, хранение данных в ней в базе занимает меньше места, да и проблем с ней меньше?
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
Fenrir13
Дата 21.9.2008, 19:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 20.9.2008

Репутация: 1
Всего: 2



Чтобы не было проблем с UTF-8, нужно выполнение трех условий:
  • Кодировка полей таблицы - UTF-8 (по вашему CREATE TABLE это выполнено)
  • Соединение с базой в UTF-8 (см. ответ teroni)
  • Отсутствие уже битых значений в таблице.
Если вы переносили свою базу, то могли побить кодировку в процессе. Или у вас изначально не выполнялось условие 2 и фактически вы записали в таблицу данные в cp1251, чего и не заметили до установки "правильной" кодировки соединения. Либо периодически теряете условие 3.
PM MAIL Jabber   Вверх
Elfet
Дата 22.9.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Fenrir13, то что нужно ,спасибо!


--------------------
PM MAIL WWW Skype   Вверх
nextzi0
  Дата 23.9.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Не хочу создавать новую тему, может здесь мне кто разъяснит некоторые моменты с кодировками...
У меня база хранит данные в кодировке utf8. Поиск и сортировка ведется по правилу utf8_general_ci.
Как мне в моем браузере отобразить символы кодировки utf8, когда кодировка браузера установлена в cp1251? 
set character_set_results? Мне нужно чтоб моя база хранила разного рода символы (иероглифы, арабские и тп.) - utf8, и в браузере с кодировкой cp1251 чтоб они тоже отображались.
Вот например взять сайт вконтакте.ру - у меня в браузере выводтся всякие там иероглифы, сердечки, которые юзеры ставят... А мой браузер использует кодировку 1251, как такое возможно? Не пойму...
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
bars80080
Дата 23.9.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



PM MAIL WWW   Вверх
nextzi0
Дата 23.9.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



Спасибо, функция пригодится. Но я немного не пойму....
Допустим эта функция переконвертила нужную мне строку из utf8 в cp1251 например такую
(¯`v´¯)
`•.¸.•´
¸.•´¸.•´¨) ¸.•*¨)
(¸.•´ (¸.•´ .•´¸¸.•¨¯`•☻ 
каким образом она отображается у меня на экране если в cp1251 нет некоторых символов?
Понять бы это...как все это работает (было б лучше на примере какого нибуть ресурса в инете)

И еще нашел тут :
в MySQL появились две новые команды
set character_set_client
и
set character_set_results
Первая указывает, в какой кодировке приходят данные в базу, а вторая - в какой их выдавать. Поскольку чаще всего эти кодировки совпадают, то можно писать короче - один запрос "SET NAMES кодировка", который и устанавливает оба эти параметра.
Причем по отдельности если ставить, то у меня не работает, работает только с SET NAMES

Это сообщение отредактировал(а) nextzi0 - 23.9.2008, 21:21
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
Elfet
Дата 24.9.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



nextzi0, тебе нужно в браузере поменять кодировку на UTF-8?


--------------------
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.