Heim  >  Artikel  >  Backend-Entwicklung  >  php字符编码转换问题

php字符编码转换问题

WBOY
WBOYOriginal
2016-07-25 08:53:45899Durchsuche
  1. $string=mb_convert_encoding($string, 字符输出编码, 原字符编码);
复制代码

例如:网页使用gbk编码,字符串使用utf-8编码,将字符转换为网页显示编码。

  1. echo mb_convert_encoding("php编码转换", "gbk", "utf-8");
复制代码

总结:推荐使用mb_convert_encoding函数,该函数无iconv转换字符错误问题。

对字符串进行编码转换,要转成UTF-8。 如果知道原字符串编码,就可以使用大家都熟悉的iconv函数,但现在是不知道原字符串的编码,可能是GBK,也可能原来就是UTF-8,就不能使用这个方法了。 如果可以获取字符串编码类型,或者有一个自动识别原字符串编码的编码转换函数就好了。 结果找到了mb_convert_encoding函数就是那个可以自动识别原字符串编码的函数,但在使用中,发现GBK中的某些汉字被它转成了乱码。

后来又在php手册上找到了is_utf8函数,然后结合iconv函数,问题得以解决。

用到的编码转换函数:

  1. function is_utf8($string) {
  2. return preg_match(’%^(?:
  3. [\x09\x0A\x0D\x20-\x7E] # ASCII
  4. | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
  5. | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
  6. | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
  7. | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
  8. | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
  9. | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
  10. | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
  11. )*$%xs’, $string);
  12. } // function is_utf8
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php面试题集及答案 Nächster Artikel:php汉字编码转换方法精讲