![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| FredFrield |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.4.2006 Репутация: нет Всего: нет |
Как всегда проблема с русским... помучился по поиску не нашёл нечё путного...
Для примера: есть два файла: s.php - основная форма отправка, метод строго GET. Кодировка файла ANSI
get.php - второй файл, Кодировка файла тажа ANSI
При отправке теста с русскими символами, переменная передаётся в $_GET['text'], но не пропускается регуляркой... Мои предположение: проблема с кодировкой самой передаваемой переменной и чувствительность, возможно, функции preg_match к X кодировкам или свои принципы метода GET ... Как решить проблему не нашёл, главные условия : метод GET и то что файлы останутся в кодировке ANSI... Кто что посоветует? как обойти трабл?))) Заранее Спасибо! Это сообщение отредактировал(а) FredFrield - 21.11.2008, 20:56 Присоединённый файл ( Кол-во скачиваний: 1 )
php.rar 0,63 Kb |
||||
|
|||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
>> header("Content-type: text/html; charset=UTF-8");
Это говорит браузеру что данные будут в utf. Следовательно он и исходящие данные в него(юникод) кодирует. Если напишешь в первом файле что нибудь на русском в html-коде это побьется, так как браузер будет выводить через юникод данные в твоей кодировке. |
|||
|
||||
| unicross |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 422 Регистрация: 15.6.2008 Репутация: 21 Всего: 53 |
перед строкой Это решит проблему в вашем случае, но тем не менее проблема с русским языком останется. Если вы передаете данные в windows-1251, а заголовок отправляете utf-8, то все отправляемые браузеру данные необходимо перевести в кодировку utf-8 с помощью
s.php
get.php
|
||||||||
|
|||||||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
По моему вариант выше - страшный изврат, нужный непонятно где(по крайней мере я не могу придумать ситуации, когда хедер фиксирован, кодировка файлов тоже и приходится все перегонять из одной кодировки в другую), а FredFrield просто скопировал 3 строки с объявлением хедеров когда-то, не понимая что они значат, и теперь всюду пихает.
http://www.google.ru/search?q=протокол+http |
|||
|
||||
| FredFrield |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.4.2006 Репутация: нет Всего: нет |
Для theworldcreator:
не сказал бы, что я нечего не понимаю... я написал на быструю руку пример и закинул хедеры, что б сымитировать проблему, та которая у меня стоит... да согласен, можно было не отключать кеширование и так далее... Если бы я не знал, что пишу, я бы спросил. Если ты сомневаешься в моих знаниях, могу доказать обратное описав всё подробно... в реале я использую динамическую подгрузку, вот почему два условия: файлы должны быть сохранение в формате ANSI и использование GET почему именно написал UTF-8 в примере? просто если б этого не сделал было б огромное количество постов использовать именно эту кодировку... Если быть точнее у меня в скрипте стоит для файла отправки ( s.php ) charset=windows-1251. и всё играет свою роль... unicross, Спасибо за ответ и идею... начну исследовать! |
|||
|
||||
| theworldcreator |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Эта фраза свидетельствует о твоем непонимание вопроса. Когда ты отправляешь хедер браузеру у тебя НЕ меняеться кодировка, просто ты обманываешь браузер. Если бы ты спросил, как перевести данные из одной кодировке в другую, тебе бы сразу ответили.
пользуйся P.S. Крайне советую таки почитать основы. Добавлено через 3 минуты и 45 секунд Кстати можешь оставить хедеры с объявлением кодировки и настроить сервер для автоматического перекодирования файлов для пользователей(.htaccess) Но делать это вручную со всеми данными на вывод - не вариант. Это сообщение отредактировал(а) theworldcreator - 22.11.2008, 14:32 |
||||||
|
|||||||
| FredFrield |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.4.2006 Репутация: нет Всего: нет |
проблема решена
увы заголовок в файле get.php востребователен charset=UTF-8 |
|||
|
||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Прекрасно. А если так:
s.php
М? |
|||
|
||||
| FredFrield |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.4.2006 Репутация: нет Всего: нет |
я понимаю, что таким способом обманываю браузер)
идея хорошая, если так смотреть в общих чертах, но пытался сделать, не принимало. Решил проверить твой вариант... жалко не пашет.... может быть я не точный пример привёл... Добавлено через 3 минуты и 17 секунд + мне не важен вывод на странице русского текста... а то, что мне передаётся в файл get.php и почему регулярка не обрабатывала русский, вот в чём была проблема. Это сообщение отредактировал(а) FredFrield - 22.11.2008, 14:44 |
||||
|
|||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Вероятно ты сохранил get.php в кодировке, отличной от ANSI. У меня по крайней мере все работало. |
|||
|
||||
| FredFrield |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 4.4.2006 Репутация: нет Всего: нет |
у меня стандарт стоит... да я знаю, я и сам для своего примера решил проблему... но всё же для моей конкретной задачи суть проблемы, как я и догадывался, стояло в кодировке передаваемой переменной... спс всё равно за помощь. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |