替换UTF-8编码电子邮件中的字符

时间:2015-04-13 11:10:01

标签: php encoding utf-8

我正在寻找一种简单地用UTF-8编码电子邮件中的ASCII对应字符替换字符的方法。我已在下面编写了初步代码,但似乎我正在使用的str_replace命令将继续永远捕获所有可能的组合。有更有效的方法吗?

<?php

$strings = "=?utf-8?Q?UK=20Defence=20=2D=20Yes=2C=20Both=20Labour=20and=20Tory=20Need=20To=20Be=20Very=20Much=20Clearer=20On=20Defence?=";

function decodeString($input){
    $space = array("=?utf-8?Q?","=?UTF-8?Q?", "=20","?=");
    $hyphen = array("=E2=80=93","=2D");
    $dotdotdot = "=E2=80=A6";
    $pound = "=C2=A3";
    $comma = "=2C";
    $decode = str_replace($space, ' ', $input);
    $decode = str_replace($hyphen, '-', $decode);
    $decode = str_replace($pound, '£', $decode);
    $decode = str_replace($comma, ',', $decode);
    $decode = str_replace($dotdotdot, '...', $decode);
    return $decode;
}

echo decodeString($strings);

?>

1 个答案:

答案 0 :(得分:0)

我明白了 - 我必须将$strings传递给mb_decode_mimeheader()函数。