$ _GET не работает правильно с Internet Explorer (UTF-8) - PullRequest
0 голосов
/ 19 мая 2011

Я пытаюсь получить значения из URL и я закончил с проблемой в IE но во всех других браузерах он отлично работает.

Это моя проблема:

Если текст - это какой-то текст UTF-8, например:

$x=$_GET['txt'];
echo $x;

Я получил

1011 * ??????? *

только в IE

все та же проблема, и это весь мой код

 <?php
header('Content-Type: text/html; charset=utf-8');
$x=$_GET['id'];
echo $x;
?>

попробуйте с этим словом в id

سسسسسسس

Ответы [ 4 ]

2 голосов
/ 19 мая 2011

Вы можете поместить этот метатег внутри <head>, если это проблема с кодировкой (в качестве альтернативы использованию header внутри PHP):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

UPDATE

Если вы не кодируете значение x из URL, вы должны сделать что-то вроде:

<a href="page.php?x=<?php echo urlencode($string)?>">Link</a>

Используя ваш пример текста (سسسسسسس), после того, как он закодирован с помощью urlencode, он должен выглядеть так:

%D8%B3%D8%B3%D8%B3%D8%B3%D8%B3%D8%B3%D8%B3

Я заработал, добавив метатег charset и выполнив простой urldecode:

echo urldecode($_GET['x']);

Смотрите скриншот в IE: enter image description here

1 голос
/ 19 мая 2011

Попробуйте настроить страницу, чтобы браузер правильно распознал ее кодировку.Обычно достаточно отправить правильный заголовок:

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

Это для UTF8, но вы можете отправить любую кодировку, какую захотите.

0 голосов
/ 19 мая 2011

Как вы уже заявили сами, это может зависеть от настроек кодировки символов в браузерах. Попробуйте utf8-функцию в PHP как http://www.php.net/manual/de/function.utf8-decode.php а также http://www.php.net/manual/de/function.utf8-encode.php (

Также смотрите здесь: Обработка значений Unicode в параметрах GET с помощью PHP

0 голосов
/ 19 мая 2011

попробуйте добавить: urlencode & urldecode вокруг вашего $x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...