$ _GET无法与Internet Explorer(UTF-8)一起正常工作

时间:2011-05-19 11:08:07

标签: php internet-explorer encoding utf-8

我正在尝试从url获取值 我最终在IE中遇到了问题 但是所有其他浏览器都很棒。

这是我的问题:

如果文本是一些UTF-8文本,例如:

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

我得到了

  

???????

只在IE中

还是同样的问题,这是我的所有代码

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

尝试在id

中使用此单词

سسسسسسس

4 个答案:

答案 0 :(得分:2)

如果这是一个charset问题(作为在PHP中使用<head>的替代方法),您可以将此元标记放在header内:

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

<强>更新

如果您没有从网址中对x的值进行编码,则应执行以下操作:

<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 :(得分:1)

尝试设置页面,以便浏览器正确识别其编码。大多数情况下发送一个合适的标题就足够了:

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

这适用于UTF8,但您可以发送所需的任何编码。

答案 2 :(得分:0)

尝试添加:urlencode&amp; $x

周围的urldecode

答案 3 :(得分:0)

正如您已经说明的那样,这取决于浏览器的字符编码设置。尝试使用PHP中的utf8函数 http://www.php.net/manual/de/function.utf8-decode.phphttp://www.php.net/manual/de/function.utf8-encode.php (:

另见: Handling unicode values in GET parameters with PHP