However, English generally does not have encoding problems, only Chinese data will have this problem. For example, when you use Zend Studio or Editplus to write a program, you use gbk encoding. If the data needs to be entered into the database, and the database encoding is utf8, then the data must be encoded and converted, otherwise it will become garbled when entering the database. .
See the official usage of mb_convert_encoding:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
Make a GBK To UTF-8
Copy the code The code is as follows:
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("You are my friend", "UTF-8", "GBK") ;
?>
Another GB2312 To Big5
Copy the code The code is as follows:
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("You are my friend", "big5", "GB2312");
?>
But to use the above function, you need to install it but you need to enable the mbstring extension library first.
Another function iconv in PHP is also used to convert string encoding, and its function is similar to the function above.
There are some detailed examples below:
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
mb_convert_encoding can specify multiple types Input encoding, it will automatically identify based on the content, but the execution efficiency is much worse than iconv;
string iconv (string in_charset, string out_charset, string str)
Note: The second parameter, in addition to specifying the encoding to be converted to, You can also add two suffixes: //TRANSLIT and //IGNORE. //TRANSLIT will automatically convert characters that cannot be directly converted into one or more approximate characters. //IGNORE will ignore characters that cannot be converted. By default, The effect is to truncate from the first illegal character.
Returns the converted string or FALSE on failure.
Use:
It is found that iconv will make an error when converting the character "-" to gb2312. Without the ignore parameter, all strings following this character cannot be saved. No matter what, this "-" cannot be converted successfully and cannot be output. In addition, mb_convert_encoding does not have this bug.
In general, iconv is used. The mb_convert_encoding function is only used when the original encoding cannot be determined, or iconv cannot be displayed normally after conversion.
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.
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE * /
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP ,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);
Example:
Copy code The code is as follows:
$content = iconv("GBK" , "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8","GBK");
Small pitfalls of using mb_convert_encoding in PHP
Use mb_convert_encoding in PHP programs () method for character encoding conversion is familiar to everyone, and is also used in large quantities. And in general, this method performs well enough and deserves praise. But in a project we needed to use it to convert UTF8 to GBK, and found a minor problem when converting some special characters. The specific performance is that mb converts characters that can be encoded in utf8 but cannot be encoded in gbk.
The above introduces what conversation means. The instructions for using the encoding conversion functions mb_convert_encoding and iconv under PHP include the meaning of conversation. I hope it will be helpful to friends who are interested in PHP tutorials.