![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Здравствуйте! У меня проблема следующего рода. Для того, чтобы мои страницы отображались нормально, мне необходимо их хранить в кодировке utf-8. До этого я работал с windows-1251. Я перевожу страницы следующим образом (знаю, способ топорный, но ...): создаю новую страницу в Notepad, далее "Кодировки"-->"Кодировать в UTF-8" и вставляю содержимое. Тег meta в этих документах (если он присутствует, конечно) я также выставляю utf-8. При такой организации у меня резко перестали работать все проверки на русские буквы (в php-скрипте), я думаю, скрипт их просто не "узнаёт". Ну и наконец сама база MySQL, куда вставляются мои данные. Я её создал следующим запросом:
у текстовых полей таблиц кодировка та же. Вместо русских букв вставляется какая-то хрень вроде ыфвфыа. Итак: 1) Как мне правильно переводить страницы в utf-8? Думаю, я что-то не так сделал. 2) Почему проверки на русские буквы не работают? 3) Что мне делать со вставкой в базу? Заранее спасибо. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
1. Ты правильно перевел страницы в utf-8
2. Проверки не работают потому, что стандартные функции пхп не работают с многобайтными кодировками. Надо использовать mbsting_* 3. в FAQ форума заглядывал? Добавлено через 2 минуты и 34 секунды А, сорри. Это ЧАВО из другого форума http://forum.vingrad.ru/index.php?showtopi...st&p=804974 |
|||
|
||||
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
mbsting? Ответный вопрос: как мне использовать mbsting для проверки регулярных выражений? Т.е. раньше было
а теперь что? Это сообщение отредактировал(а) barcelona - 15.12.2007, 12:26 |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
http://us2.php.net/manual/en/function.preg-match.php#79273
Добавлено через 50 секунд или так. http://64.233.183.104/search?q=cache:10Pnk...n&inlang=ru вот только это форум про базы данных, а не про поиск в гугле................................................................... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
это выводится некорректно(content-encoding в <meta> для html, или в рнр приотправке контента - header с таким же содержимым). или читается из БД(set names). вставился utf-8. а отображаться пытается как ср1251. выводится на странице? или в программе? Добавлено через 1 минуту и 44 секунды d регулярных выражениях для работы с unicode следует указывать модификатор u |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
а странно, все-таки, что в прошлой теме никто не написал про буфферинг и iconv...
|
|||
|
||||
| barcelona |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Feldmarschall, я извиняюсь за оффтоп. skyboy, проблему с базой я решил, благодаря
Всем спасибо. С проверкой полей в PHP родил правильное решение следующим способом: $pattern='/[^а-яА-ЯёЁ\s]/u'; Работает. А вопрос такой: на моей домашней машине документы в кодировке utf-8 отображаются нормально, а на работе - сплошные закорючки. Нужно менять настройки сервера? Это сообщение отредактировал(а) barcelona - 15.12.2007, 13:40 |
|||
|
||||
| N0dwis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Были похожие проблемы с MySQL.
Если 5-я версия, то может помочь такой параметр в my.ini [mysqld] skip-character-set-client-handshake Это я так понял отменяет согласование кодировок между сервером и клиентом и устанавливает кодировку данных ту, что по умолчанию в MySQL. Хотя если кто объяснить подробнее, буду очень благодарен. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
N0dwis, ты правильно понимаешь. skip-character-set-client-handshake - это то же самое, что SET NAMES равное кодировке БД. То есть, практически переводит БД в режим до-4.1.
Поможет только в том случае, если кодировка БД совпадает с кодировкой страниц. подробнее - почитай тут http://phpfaq.ru/charset и далее по ссылкам. ну - или в документации |
|||
|
||||
| N0dwis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: нет Всего: 4 |
Спасибо большое.
Наконец расставил все точки над i в этом вопросе. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Не зарекайся! Я тоже так думал
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |