Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодировка при передаче данных 
V
    Опции темы
Gold Dragon
Дата 14.9.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Делаю сайт на UTF-8

всё вроде работает.. НО.. когда передаю данные из формы методом POST, то часть русских букв становится знаками вопроса. Что это такое и как это победить?

Добавлено через 1 минуту и 43 секунды
поясню.. данные получает скрипт.. Если поля не все заполнены, то полученные данные вставляются обратно в форму.. перед этим у них "вырезается лишнее" (пробелы, теги и т.п.)

Добавлено через 7 минут и 37 секунд
вот что у меня происходит в скрипте
Код

preg_replace('#\W#','', strip_tags(trim($_POST['name'])))

это может влиять?

Добавлено через 14 минут и 32 секунды
если прогнать алфавит, то вот что на выходе smile
Цитата

��вгде���и�к�мнопрс�у������ь�ъэюя

Цитата

А�����Ё����К�МНОП�СТУ�Х��Ш���Ъ��Я



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
unicross
Дата 14.9.2009, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(Gold Dragon @  14.9.2009,  16:17 Найти цитируемый пост)
перед этим у них "вырезается лишнее" (пробелы, теги и т.п.)

Видимо используете функции, которые не предназначены для работы с кодировкой UTF-8. Что-то вырезая вы удаляете 1 байт из 2-х байтного символа (русские буквы). Используйте функции начинающиеся с префикса mb_ http://ru.php.net/manual/en/book.mbstring.php и указывайте кодировку.

Цитата
preg_replace('#\W#','', strip_tags(trim($_POST['name'])))

Модификатор u нужно добавить...
Код

#\W#u

PM MAIL WWW   Вверх
Gold Dragon
Дата 14.9.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



когда добавляю вообще пустое всё приходит

Добавлено через 3 минуты и 26 секунд
да, действительно регулярка режет.. А как быть? Или тупо переводить туда и обратно?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
unicross
Дата 14.9.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Код

echo preg_replace('#[^a-zа-яё0-9]#ui','', 'русские буквы');


Добавлено через 4 минуты и 34 секунды
Если конечно вы удаляете все, что не является буквой или цифрой. Если нужно другое, то решение будет другим...
PM MAIL WWW   Вверх
Gold Dragon
Дата 14.9.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а как сюда добавить это?
"."
","
":"
";"
" "
"-"
"+"


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
unicross
Дата 14.9.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Код

echo preg_replace('#[^a-zа-яё0-9,:; +.-]#ui','', 'русские буквы&^%$ .,:; -+');

PM MAIL WWW   Вверх
Gold Dragon
Дата 14.9.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



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

Это сообщение отредактировал(а) Gold Dragon - 14.9.2009, 15:58


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
unicross
Дата 14.9.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(Gold Dragon @  14.9.2009,  16:57 Найти цитируемый пост)
unicross, если я правильно понял, то в скобках не может быть служебных символов?

В смысле \s и др.? Могут быть. Только некоторые работают иногда некорректно... Вот пример с классами:
Код

echo preg_replace('#[^a-zа-яё\d,:;\s+.-]#ui','', 'русские буквы&^%$ .,:; -+2356');


Или вы имеете в виду точку, плюс и др.? Точка и некоторые др. метасимволы теряют свою магическую силу внутри квадратных скобок. Однако например "-" имеет магическое значение диапазона, если расположен не в самом конце списка. Экранировать можно с помощью слеша.
PM MAIL WWW   Вверх
Gold Dragon
Дата 14.9.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



ага... вроде всё работает.. разобрался со всем.. Спасибо ;)


зы
когда же я научусь всё таки пользоваться регуляркой...


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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