如果我们知道当前的编码是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
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); } }