Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу понять, что творится с кодировкой базы 
V
    Опции темы
Borland_Delphi_6
Дата 23.12.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


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

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



В общем есть у меня база, и я все время полагал, что она как положено живет в UTF-8. Хранятся в ней всякие разные национальные символы, в т.ч. русские. Сейчас начал разбираться с ней, и появились у меня вопросы. Если я делаю 

Код

SET NAMES UTF8

на выходе получаю кракозябы, а если задать
Код

SET NAMES LATIN1

то нормально вижу и русские буквы, и буквы других алфавитов. Почему так, не подскажете? 


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
bars80080
Дата 23.12.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



ну, какой кодировки база, можно посмотреть всякими запросами, типа show create database, ещё лучше посмотреть какой кодировки таблица show create table и show table status

set names же говорит базе, в какой кодировке клиент, а посему в таком виде отдаются данные. имхо, у тебя клиент работает на latin1.
что же это?

Добавлено через 1 минуту и 5 секунд
да, и данные могли быть уже вставлены и соответствующе перекодированы. вставлялись, указывая базе, что они utf8, а реально слались latin1 (но это уже размышления)
PM MAIL WWW   Вверх
Borland_Delphi_6
Дата 23.12.2009, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


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

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



Это PHP и вывод в браузер. Причем браузер определяет кодировку страницы как UTF-8. Вот код:

Код



<?
  $db = mysql_connect("localhost","нихаха","труляля");
  mysql_query("set names utf8"); //так кракозябы, а если закомментить - то нормально ???
  mysql_select_db("ampache_with_old_data" ,$db);
  $sql = mysql_query("SELECT name FROM artist WHERE id = 130" ,$db);
  echo mysql_result($sql, 0);
  mysql_close($db);
?>


Это сообщение отредактировал(а) Borland_Delphi_6 - 23.12.2009, 23:15


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Akina
Дата 23.12.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(Borland_Delphi_6 @  23.12.2009,  23:02 Найти цитируемый пост)
и я все время полагал

show create table позволяет ЗНАТЬ, а не предполагать.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Borland_Delphi_6
Дата 23.12.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


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

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



Ну мои предположения основывались на том, что я при создании указывал UTF-8 + мой клиент (MySQL Front) рапортовал об этой кодировке. show create table показало то же самое - UTF-8. Но отображается все нормально если я ставлю latin1. Мне в принципе не жалко, я просто в толк не возьму, я думал в latin1 в принципе нет, к примеру, русских символов.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
skyboy
Дата 23.12.2009, 23:56 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



ты когда данные в базу заносил, у тебя не было set names utf8, а дефолтная кодировка клиента была latin1. именно в этом случае при установленной для таблицы и полей в ней кодировке utf8 у тебя выборка будет выдавать нечитаемое.
PM MAIL   Вверх
Borland_Delphi_6
Дата 24.12.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


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

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



Все понял, так и есть, спасибо! Даже удалось нормально перегнать все из latin в utf8_general_ci  smile 

Кстати, вдруг кому будет полезно: новый Sypex не так давно появился, он-то мне и помог с перекодировкой.  smile 


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

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


 




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


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

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