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 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 code The code is as follows:
header("content-Type : text/html; charset=big5");
echo mb_convert_encoding("You are my friend", "big5", "GB2312");
?>
But use the above The function needs to be installed but the mbstring extension library needs to be enabled 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, In php.ini, remove; in front of extension=php_mbstring.dll;
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;
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 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. If there is no ignore parameter, all this The string following the 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 the iconv conversion cannot be displayed normally.
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 transcoding in PHP
Everyone is familiar with using the mb_convert_encoding() method to convert character encoding in PHP programs, and it 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.
http://www.bkjia.com/PHPjc/320912.html
www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/320912.htmlTechArticleHowever, 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...