| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Таблица с текстом в UTF-8 |
| Автор: Elfet 19.9.2008, 18:50 | ||
| Всем привет! Опять проблемы с этими кодировками. Как правильно создать таблизу для работы с UTF-8 в MySQL? Я делаю вот так, но это похоже не всегда работает:
|
| Автор: skyboy 19.9.2008, 20:25 |
ну, да. до версии 4.1 http://phpfaq.ru/charset#full. но найит версию до 4.1 надо постараться. с твоим кодом у тебя проблемы? |
| Автор: Elfet 19.9.2008, 21:28 |
| Да, на 5.0 пришлось изменить сравнение на cp1251_general_cs |
| Автор: skyboy 19.9.2008, 21:37 |
| не понимаю. у тебя проблема в работе какой-то программы с БД или в работе самой БД? |
| Автор: Elfet 19.9.2008, 22:13 |
| Проблема в работе моего скрипта с БД. На разных версиях MySQL разные проблемы. Как правильно работать с мускулом в UTF-8? |
| Автор: skyboy 19.9.2008, 23:31 |
ээээ....и где этот таинственный скрипт? не могу сказать, что давно работаю с PHP, но за два года никаких "универсальных" ошибок MySQL не встречал. Практически всегда были проблемы либо скрипта, либо механизма работы скрпта с БД. т.е. проблему без анализа кода скрипта не решить. |
| Автор: Elfet 20.9.2008, 11:46 | ||
Скрипт очень большой, во вырезка из него:
А остальное просто загрузка по mysql_query |
| Автор: teroni 21.9.2008, 13:28 | ||
Может просто дефис в кодировке лишний?
|
| Автор: nextzi0 21.9.2008, 19:15 |
| Обьясните, в чем преимущество кодировки utf8, когда большинство ресурсов работают с cp1251, хранение данных в ней в базе занимает меньше места, да и проблем с ней меньше? |
| Автор: Fenrir13 21.9.2008, 19:18 |
Чтобы не было проблем с UTF-8, нужно выполнение трех условий:
|
| Автор: Elfet 22.9.2008, 17:33 |
| Fenrir13, то что нужно ,спасибо! |
| Автор: nextzi0 23.9.2008, 19:42 |
| Не хочу создавать новую тему, может здесь мне кто разъяснит некоторые моменты с кодировками... У меня база хранит данные в кодировке utf8. Поиск и сортировка ведется по правилу utf8_general_ci. Как мне в моем браузере отобразить символы кодировки utf8, когда кодировка браузера установлена в cp1251? set character_set_results? Мне нужно чтоб моя база хранила разного рода символы (иероглифы, арабские и тп.) - utf8, и в браузере с кодировкой cp1251 чтоб они тоже отображались. Вот например взять сайт вконтакте.ру - у меня в браузере выводтся всякие там иероглифы, сердечки, которые юзеры ставят... А мой браузер использует кодировку 1251, как такое возможно? Не пойму... |
| Автор: bars80080 23.9.2008, 20:06 |
| http://php.ru/manual/function.iconv.html |
| Автор: nextzi0 23.9.2008, 21:18 |
| Спасибо, функция пригодится. Но я немного не пойму.... Допустим эта функция переконвертила нужную мне строку из utf8 в cp1251 например такую (¯`v´¯) `•.¸.•´ ¸.•´¸.•´¨) ¸.•*¨) (¸.•´ (¸.•´ .•´¸¸.•¨¯`•☻ каким образом она отображается у меня на экране если в cp1251 нет некоторых символов? Понять бы это...как все это работает (было б лучше на примере какого нибуть ресурса в инете) И еще нашел тут : в MySQL появились две новые команды set character_set_client и set character_set_results Первая указывает, в какой кодировке приходят данные в базу, а вторая - в какой их выдавать. Поскольку чаще всего эти кодировки совпадают, то можно писать короче - один запрос "SET NAMES кодировка", который и устанавливает оба эти параметра. Причем по отдельности если ставить, то у меня не работает, работает только с SET NAMES |
| Автор: Elfet 24.9.2008, 15:22 |
| nextzi0, тебе нужно в браузере поменять кодировку на UTF-8? |
| Автор: nextzi0 26.9.2008, 16:54 |
| Ну вот и я про это... Даже на на этом форуме: что 1251 что UTF8 - у меня все отображается нормально! Смотрю вот в метатеге этой страницы стоит набор символов UTF8, а у меня в браузере - 1251 и я все равно вижу нормально все! |
| Автор: Elfet 27.9.2008, 21:32 | ||
У меня в браузере тут стоит UTF-8. Если метатеги не срабатывают, то лучше напрямую в заголовке послать кодировку. Например на php:
|
| Автор: nextzi0 3.10.2008, 10:12 | ||
Если я ее поменяю то у меня будут не различимы символы из кодировки 1251 |
| Автор: Elfet 3.10.2008, 10:49 |
| Нужно выбрать одну кодировку и в ней всё отправлять пользователю. |