php tutorial several common methods of string encoding conversion
mb_convert_encoding()
PHP internal code conversion function
Version (PHP 4 >= 4.0.6, PHP 5)
This function can convert various encodings to each other
Make a GBK To UTF-8
< ?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("You are my friend", "UTF-8", "GBK");
?>
Another GB2312 To Big5
< ?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("You are my friend", "big5", "GB2312");
?>
iconv()
PHP internal code conversion function, same as above
Because iconv() has a bug when converting gb2312, it needs to be handled like this
PHP codeiconv( "UTF-8", "gb2312//IGNORE" , $str)
ignore means to ignore errors during conversion. It is found that iconv will make an error when converting the character "—" to gb2312. If there is no
ignore parameter, all strings following this character cannot be saved.
In addition, mb_convert_encoding does not have this bug, so the best way to write it is:
PHP codemb_convert_encoding($str,"gb2312", "UTF-8");
But you need to enable the mbstring extension library first.
You can also set the collation of the mysql tutorial database tutorial to utf-8 and it will not be used for conversion
Three mysql mantras
SQL code
SET NAMES utf8;
SET CHARACTER SET utf8;
SET COLLATION_CONNECTION='utf8_general_ci';
Custom function 1
-------------------------------------------------- ----------------------------------
---
I found the conversion function on the Internet to convert GB2312. After modifying it to utf-8, the conversion error occurred and the Chinese could not be parsed... Looking forward to it
The madman...
PHP code
function escape($str) {
Preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
If(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
return join("",$ar);
}
$str = rawurldecode($str);
Preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
If(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
?>
Custom function 2
-------------------------------------------------- ----------------------------------
Thanks to forum gingzai777, experts are different, they can see the problem at a glance....
In the future, you can use this line for PHP filtering, and you don’t need to worry about file encoding.....
PHP code
function addslashes_str($str){
$str=addslashes($str);
$str=str_replace($str,";",';');
return $str;
}
function strips tutorial lashes_str($str){
$str=stripslashes($str);
$str=str_replace($str,';',";");
return $str;
}
?>