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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодировка запроса 
:(
    Опции темы
shutnik
Дата 26.3.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



здравствуйте, товарищи.
в общем, столкнулся с проблемой, помогите.
не буду описывать мой случай, а приведу пример. допустим, имею:

Код
<?php

header('Content-type: text/html; charset=utf-8');
echo @$_GET['q'];

?>


выполняю запрос: *url_до_скрипта*?q=тест.
в результате имею страницу с вопросительными знаками. браузер по заголовку определил её в юникоде.
меняю кодировку в браузере на windows-1251 и вижу нужный текст.
как сделать так, чтобы запросы по умолчанию приходили в utf-8?
PM   Вверх
mishaSL
Дата 26.3.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



shutnik, сохраните саму страницу в кодировке utf-8.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shutnik
Дата 26.3.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mishaSL, а где вы тут увидели привязку к кодировке текущей страницы?
моя проблема в том, что запрос приходит в win-кодировке, а использую utf-8...
приходится использовать iconv, что очень меня напрягает.
PM   Вверх
mishaSL
Дата 26.3.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(shutnik @  26.3.2007,  17:11 Найти цитируемый пост)
mishaSL, а где вы тут увидели привязку к кодировке текущей страницы?
моя проблема в том, что запрос приходит в win-кодировке, а использую utf-8...
приходится использовать iconv, что очень меня напрягает. 


В том то и проблема что ваш файл (физически храниться) в win-кодировке, а вы пытаетесь работать в utf-8.
Может я конечно ошибаюсь но проверьте какой у вас заголовок Content-Type приходит. Если вы в utf-8 хотите работать, то он должен быть:
Код

Content-Type: text/html; charset=utf-8



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shutnik
Дата 26.3.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mishaSL @  26.3.2007,  20:53 Найти цитируемый пост)
В том то и проблема что ваш файл (физически храниться) в win-кодировке, а вы пытаетесь работать в utf-8.

дело не в этом, указанный код и в windows-1251 и в utf-8 одинаково выглядит.


Цитата(mishaSL @  26.3.2007,  20:53 Найти цитируемый пост)
Может я конечно ошибаюсь но проверьте какой у вас заголовок Content-Type приходит.

а код header('Content-type: text/html; charset=utf-8'); что по вашему делает?

приведу ещё один пример:
Код
<?

header('Content-type: text/html; charset=utf-8');

echo @$_GET['q'];
echo iconv("windows-1251", "utf-8", @$_GET['q']);

?>


мне нужно, чтобы строки выводились одинаковые, т.е. чтобы по умолчанию входные данные из форм были в юникоде.

нашёл тут на форуме пост, что мол если в конфигурации php включить mbstring.func_overload, то будет то, что мне нужно, однако результат не изменился.
как же быть?
PM   Вверх
mishaSL
Дата 26.3.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(shutnik @  26.3.2007,  18:08 Найти цитируемый пост)
а код header('Content-type: text/html; charset=utf-8'); что по вашему делает?

то что ты его передал, это еще ничего не значит.


shutnik, зачем спорить ты попробуй сначало в редакторе в котором пишешь, посмотри кодировку и поставь там utf-8.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shutnik
Дата 26.3.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mishaSL @  26.3.2007,  21:48 Найти цитируемый пост)
то что ты его передал, это еще ничего не значит.

не соглашусь с вами. браузер определяет кодировку верно (то есть юникод, как я и указал).

Цитата(mishaSL @  26.3.2007,  21:48 Найти цитируемый пост)
shutnik, зачем спорить ты попробуй сначало в редакторе в котором пишешь, посмотри кодировку и поставь там utf-8. 

это я сделал ещё перед тем, как задать тут вопрос.
PM   Вверх
vasac
Дата 26.3.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Код

<?
header('Content-type: text/html; charset=utf-8');
echo @$_GET['q'];
echo iconv("windows-1251", "utf-8", @$_GET['q']);
?>

Можете пояснить этот пример, а так же указать откуда приходит "q" ?
PM WWW   Вверх
shutnik
Дата 26.3.2007, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



vasac
Цитата(shutnik @  26.3.2007,  17:44 Найти цитируемый пост)
выполняю запрос: *url_до_скрипта*?q=тест.


Добавлено через 31 секунду
приходит из браузера, как н странно.

Добавлено через 4 минуты и 43 секунды
поясняю теперь:

Код

header('Content-type: text/html; charset=utf-8');

указываем браузеру нашу кодировку.

Код

echo @$_GET['q'];

печатаем просто текст запроса

Код

echo iconv("windows-1251", "utf-8", @$_GET['q']);

печатаем конвертированный из win в utf запрос.
всё банально до ужаса.
PM   Вверх
mishaSL
Дата 26.3.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(shutnik @  26.3.2007,  18:55 Найти цитируемый пост)
это я сделал ещё перед тем, как задать тут вопрос. 

так сразу бы и сказали.

Цитата(shutnik @  26.3.2007,  18:55 Найти цитируемый пост)
не соглашусь с вами

можно соглашаться, можно нет, но посмотри какой заголовок приходит. Не какой ты отправляешь, а какой приходит.
Скорее всего проблема в настройке сервера. Т.е. не проблема, а стоит директива в Apache AddDefaultCharset = on (ее можно менять через htaccess)
http://httpd.apache.org/docs/2.0/ru/mod/co...ddefaultcharset

выведи phpinfo()  и посмотри раздел Apache Environment. Первый пунст CHARSET, что там стоит?




--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shutnik
Дата 26.3.2007, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mishaSL @  26.3.2007,  22:20 Найти цитируемый пост)
можно соглашаться, можно нет, но посмотри какой заголовок приходит. Не какой ты отправляешь, а какой приходит.

приходит windows-1251, т.к. при раскодировании понятно. собственно, в этом и вопрос. я его ещё в первом посте задал:
Цитата(shutnik @  26.3.2007,  17:44 Найти цитируемый пост)
как сделать так, чтобы запросы по умолчанию приходили в utf-8? 


документ по ссылке что-то не открывается.

Цитата(mishaSL @  26.3.2007,  22:20 Найти цитируемый пост)
Первый пунст CHARSET, что там стоит?

такого пункта у меня нет.  Apache/1.3.33 (Win32) PHP/4.4.4
PM   Вверх
mishaSL
Дата 26.3.2007, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(shutnik @  26.3.2007,  19:59 Найти цитируемый пост)
документ по ссылке что-то не открывается.


Цитата(shutnik @  26.3.2007,  19:59 Найти цитируемый пост)
такого пункта у меня нет.  Apache/1.3.33 (Win32) PHP/4.4.4 


просмотри эту информацию:
http://httpd.apache.org/docs/2.0/mod/mod_charset_lite.html
http://httpd.apache.org/docs/trunk/mod/mod_mime.html



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shutnik
Дата 31.3.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mishaSL
ссылки мне не помогли. объяснить по сути можешь?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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