首先了解一下编码历史:
http://mp.weixin.qq.com/s?__biz=MzAwNjMxMTA5Mw==&mid=401012247&idx=1&sn=5d4b9af3156687fd05d20180303e7157&scene=23&srcid=1215x42pRxC1zUruI9QWUbPR#rd
编码函数 iconv
$in_charset , string $out_charset , string $str )将字符串 str 从 in_charset 转换编码到 out_charset。
in_charset输入的字符集。
out_charset输出的字符集。
如果你在 out_charset 后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。 如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。 否则,str 从第一个无效字符开始截断并导致一个 E_NOTICE。
str要转换的字符串。
返回转换后的字符串, 或者在失败时返回 FALSE。
<?php
$text = "This is the Euro symbol ‘€‘.";
echo ‘Original : ‘, $text, PHP_EOL;
echo ‘TRANSLIT : ‘, iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo ‘IGNORE : ‘, iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo ‘Plain : ‘, iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>(PHP 5 >= 5.1.0, PHP 7)
htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
$string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。
被转换的实体有: &, " (没有设置ENT_NOQUOTES 时), ' (设置了 ENT_QUOTES 时), < 以及>。
string要解码的字符串
原文:http://www.cnblogs.com/fly-sunlight/p/5179835.html