| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Кодировка |
| Автор: sssssss7 25.8.2009, 02:44 |
| Собственно проблемы нет я решил что хотел но хотелось бы и еще понять почему так... в настройках по умолчанию в mysql, сама база, таблица и поле в таблице везде стоит utf-8... а так же на сайте везде стоит кодировка UTF-8 но при добавление данных (русские слова =)) через скрипт php без строчки mysql_query("set names CP1251") добавляются иероглифы.. со строчкой mysql_query("set names CP1251") всё нормально почему так? |
| Автор: Ипатьев 25.8.2009, 07:48 |
| удивительный вопрос казалось бы, при чем здесь CP1251... |
| Автор: skyboy 25.8.2009, 09:30 |
в смысле - вместо "set names cp1251" у тебя стояло "set names utf8" и все равно не работало? |
| Автор: sssssss7 25.8.2009, 21:18 | ||||
всё и везде стоит UTF-8... а php отправляет нормальный текст только со строчкой set names cp1251, а если написать set names utf8 то оправляет каракули=) почему так не догоняю? ведь везде текст в UTF-8 и на сайте в базе, таблице.
Просьба не ехидничать а пояснить... я новичек так что сильно не пинайте.. |
| Автор: sssssss7 25.8.2009, 21:29 | ||||
| я ж говорю есть страница index.php от туда идут данные в скрипт script.php а из него в базу... все страницы в utf-8 index.php
script.php
переменная $name |
| Автор: unicross 25.8.2009, 22:07 | ||||
sssssss7, Вставьте в начало каждого файла строку:
В файле search_info.php добавьте строки
Покажите результат выполнения (этих двух строк) в точном соответствии. P.S. Данные ($name) не мешало бы обрабатывать с помощью функции mysql_real_escape_string() перед добавлением. |
| Автор: IZ@TOP 25.8.2009, 22:12 | ||||
Ну и до кучи, вместо
установить соответствующую кодировку
Еще иногда полезно не плодить лишний код, особенно когда для вставки даты и времени существуют специальные функции типа NOW(). И поскольку date/time являются зарезервированными словами, не помешало бы их проэкранировать при помощи обратной кавычки (или как там ее правильно) "`date`, `time`". |
| Автор: sssssss7 25.8.2009, 22:55 | ||||
а где лишний код.. если мне надо раздельно записать дату и время и именно в таком формате? по теме: вот обьедененный полный код index.php... переменная name отображается нормально(по русски) в базу заносится тоже нормально но остальной текст знаками вопроса в ромбике..
перевел сам файл notepad ++ в utf-8 всё гуд... вопрос поскажите пожалуйста какой редактор хороший для написания кода для php чтоб он переводил файлы в utf-8 ну и подсветка чтоб была или notepad ++ нормальный редактор? |
| Автор: unicross 25.8.2009, 23:15 | ||
| А как все может быть нормально, если строка расположена перед строкой ? Функция mysql_real_escape_string() требует подключения к базе данных...
IZ@TOP, прав! Для хранения даты и времени нужно использовать специальные форматы полей. И использовать специальные функции для вставки... А вот выводить можете в любом другом формате... |
| Автор: Ипатьев 25.8.2009, 23:18 |
| Мне кажется, автор не спрашивал, как ему поступить, а спрашивал, почему происходит описываемый эффект. Каюсь, сам я жестоко протупил, и каким-то образом во второй команде увидел почему-то utf8. Отчего и удивился. Собственно, вопроса два. 1. почему без set names получаются "иероглифы" (кстати, со всех бедолаг, пострадавших от кодировок, надо в обязательном порядке требовать пример этих "иероглифов". которые тут же скажут специалисту направление перекодировки)? Очень просто: с базой мы работаем по протоколу клиент-сервер. И хоть обвыставляйся на сервере, но клиент это не затронет никак. А если на клиенте кодировка не задана, то она выбирается по умолчанию, latin1. 2. почему не помогает set names utf8. Тут я могу только предположить, что страницы, на самом деле, не в ней, а в 1251 |
| Автор: IZ@TOP 26.8.2009, 00:15 |
| Ипатьев, лучше сразу подсказать, что бы потом меньше вопросов было ;) Соответственно, меньше новых тем с глупыми вопросами Ну и более того, понудеть никто ведь старикам не запретит? Добавлено через 2 минуты и 55 секунд sssssss7, лишний код в присвоении даты переменным. Советую очень внимательно ознакомиться с разделом http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html. Хороший редактор: Zend Studio 7, netBeans или аналогичные. |
| Автор: sssssss7 26.8.2009, 02:05 |
| Всем спасибо вроде как разобрался... и еще много полезного узнал.. учится и учится=).. IZ@TOP за прогу netBeans отдельное спасибо пока она лучшая. Zend Studio 7 что то навороченная слишком трудно разобратся. |