| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Не могу понять, что творится с кодировкой базы |
| Автор: Borland_Delphi_6 23.12.2009, 22:02 | ||||
В общем есть у меня база, и я все время полагал, что она как положено живет в UTF-8. Хранятся в ней всякие разные национальные символы, в т.ч. русские. Сейчас начал разбираться с ней, и появились у меня вопросы. Если я делаю
на выходе получаю кракозябы, а если задать
то нормально вижу и русские буквы, и буквы других алфавитов. Почему так, не подскажете? |
| Автор: bars80080 23.12.2009, 23:10 |
| ну, какой кодировки база, можно посмотреть всякими запросами, типа show create database, ещё лучше посмотреть какой кодировки таблица show create table и show table status set names же говорит базе, в какой кодировке клиент, а посему в таком виде отдаются данные. имхо, у тебя клиент работает на latin1. что же это? Добавлено через 1 минуту и 5 секунд да, и данные могли быть уже вставлены и соответствующе перекодированы. вставлялись, указывая базе, что они utf8, а реально слались latin1 (но это уже размышления) |
| Автор: Borland_Delphi_6 23.12.2009, 23:14 | ||
Это PHP и вывод в браузер. Причем браузер определяет кодировку страницы как UTF-8. Вот код:
|
| Автор: Akina 23.12.2009, 23:15 |
show create table позволяет ЗНАТЬ, а не предполагать. |
| Автор: Borland_Delphi_6 23.12.2009, 23:29 |
| Ну мои предположения основывались на том, что я при создании указывал UTF-8 + мой клиент (MySQL Front) рапортовал об этой кодировке. show create table показало то же самое - UTF-8. Но отображается все нормально если я ставлю latin1. Мне в принципе не жалко, я просто в толк не возьму, я думал в latin1 в принципе нет, к примеру, русских символов. |
| Автор: skyboy 23.12.2009, 23:56 |
| ты когда данные в базу заносил, у тебя не было set names utf8, а дефолтная кодировка клиента была latin1. именно в этом случае при установленной для таблицы и полей в ней кодировке utf8 у тебя выборка будет выдавать нечитаемое. |
| Автор: Borland_Delphi_6 24.12.2009, 16:14 |
| Все понял, так и есть, спасибо! Даже удалось нормально перегнать все из latin в utf8_general_ci Кстати, вдруг кому будет полезно: новый Sypex не так давно появился, он-то мне и помог с перекодировкой. |