Home >Backend Development >PHP Problem >How to convert Chinese to utf-8 encoding in php
During the development process, we often encounter encoding conversion problems, such as converting from GBK to UTF-8. In PHP, we can use the iconv() function to complete this task.
iconv’s syntax is as follows:
string iconv ( string $in_charset , string $out_charset , string $str )
Among them, $in_charset represents the input character set, $out_charset represents the output character set, and $str represents the string that needs to be converted.
For example, the following code converts a GBK-encoded string into UTF-8 encoding:
$str = "中文字符串"; $str = iconv("GBK", "UTF-8", $str); echo $str;
If you need to convert all strings in the entire array or object, you can use recursive traversal The method is completed, the code is as follows:
function convert_to_utf8($data) { if (is_array($data)) { foreach ($data as &$value) { $value = convert_to_utf8($value); } unset($value); } elseif (is_object($data)) { foreach ($data as &$value) { $value = convert_to_utf8($value); } unset($value); } elseif (is_string($data)) { $data = iconv('GBK', 'UTF-8', $data); } return $data; }
Usage method:
$array = array('name' => '张三', 'age' => '18'); $array_utf8 = convert_to_utf8($array); print_r($array_utf8);
Output result:
Array ( [name] => 张三 [age] => 18 )
It should be noted that the iconv function has a pitfall, that is, it encounters Returns false if the character cannot be converted. Therefore, we need to add an error handling mechanism when using iconv, for example:
$str = '中文文本'; $str = @iconv("GBK", "UTF-8//IGNORE", $str);
In the above code, "//IGNORE" means to ignore characters that cannot be converted, so that false situations can be avoided.
In general, although the iconv function provided by PHP can easily complete encoding conversion, in practice we still need to pay attention to some details to avoid errors when encountering some special situations.
The above is the detailed content of How to convert Chinese to utf-8 encoding in php. For more information, please follow other related articles on the PHP Chinese website!