PHP 将ASCII转换为UTF-8编码

如果我们知道当前的编码是ASCII,则可以使用'iconv'函数将ASCII转换为UTF-8。原始字符串可以作为参数传递给iconv函数,以将其编码为UTF-8。

示例

<?php
   $str = "ábrêcWtë";
   echo 'Original :', ("$str"), PHP_EOL;
   echo 'Plain :', iconv("UTF-8", "ISO-8859-1", $str), PHP_EOL;
?>

具有特殊字符的字符串被分配给'str'变量。它以当前所在的编码以及需要转换为的编码传递到'iconv'函数。

输出结果

这将产生以下输出-

Original :ábrêcWtë Plain :�br�cWt�

另一种方法是检测编码,然后将其转换为适当的编码-

示例

$string = "ábrêcWtë";
print(mb_detect_encoding ($string));
$string = mb_convert_encoding($string, "UTF-8");
print(mb_detect_encoding ($string));

具有特殊字符的字符串值分配给'string; 变量。这被传递到“ mb_convert_encoding”函数,该函数将其转换为目标编码。

输出结果

这将产生以下输出-

UTF-8UTF-8

任意字符编码转换为UTF-8

function strToUtf8($str){
    $encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
    if($encode == 'UTF-8'){
        return $str;
    }else{
        return mb_convert_encoding($str, 'UTF-8', $encode);
    }
}