imap_utf在浏览器中做了奇怪的事情但不是php shell

时间:2013-06-20 03:54:02

标签: php character-encoding email-headers

如果我在浏览器中从PHP脚本运行它:

echo imap_utf8('X-My-Custom-Header: =?UTF-8?B?RXVnZW4gQmFiacSH?=');

我明白了:

X-My-Custom-Header: Eugen BabicÌ

但是如果我通过PHP交互式shell执行它,它会正确返回:

php > echo imap_utf8('X-My-Custom-Header: =?UTF-8?B?RXVnZW4gQmFiacSH?=');
X-My-Custom-Header: Eugen Babić

我在互联网上使用一些解码函数设置了一个脚本:http://cameronsflash.com/misc/test.php你可以看到它们都没有正确解码字符串(但在交互式shell中它们会这样做)。

为什么它在浏览器中有所不同,我该如何解决?

编辑:由于某种原因,第二个示例中没有显示c上的重音,但它在控制台中显示。

1 个答案:

答案 0 :(得分:0)

这就是你做错了什么:你的HTML(由PHP生成)不是UTF-8编码的。

将此添加到您的<head>

标签:

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