Home > Article > Backend Development > PHP converts string encoding. The difference between iconv and mb_convert_encoding_PHP tutorial
iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5)
Usage:
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
You need to enable the mbstring extension library first, and remove the ; in front of extension=php_mbstring.dll in php.ini
string iconv (string in_charset, string out_charset, string str)
Note:
In addition to specifying the encoding to be converted to, the second parameter can also add two suffixes: //TRANSLIT and // IGNORE,
where:
//TRANSLIT will automatically convert characters that cannot be directly converted into one or more approximate characters,
//IGNORE will ignore characters that cannot be converted, and the default effect is from The first illegal character is truncated.
Returns the converted string or FALSE on failure.
Use:
1. It is found that iconv will make an error when converting the character "-" to gb2312. If there is no ignore parameter, all characters after this character None of the strings can be saved. No matter what, these
"-" cannot be converted successfully and cannot be output. In addition, mb_convert_encoding does not have this bug.
2. mb_convert_encoding can specify multiple input encodings. It will automatically identify based on the content, but the execution efficiency is much worse than iconv; such as: $str =
mb_convert_encoding($str ,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF-8");The order of "ASCII,JIS,EUC-JP,SJIS,UTF-8" also has different effects
Difference
3. Generally use iconv. Only when you are unable to determine what the original encoding is, or when iconv cannot be displayed normally after conversion, use the mb_convert_encoding function
.
from_encoding is specified by character code name before conversion. it can be array or string - comma separated
enumerated list. If it is not specified, the internal encoding will be used.
$str = mb_convert_encoding($ str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
$str = mb_convert_encoding($str, "EUC-JP', "auto");
Example:
$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8", "GBK");