mb_convert_encoding

PHP读取TXT中文乱码的解决方式

ε祈祈猫儿з 提交于 2020-03-08 20:38:08
因为业务上的需求,需要使用PHP读取一个TXT文件,但是在设计到中文的问题上,就遇到了恶心的乱码问题; 首先查看一下TXT的编码格式有四种:ANSI、Unicode、Unicode Big Endian、UTF-8 1、先是使用mb_detect_encoding($contents, array('GB2312','GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII'))语句 发现即使在其中增加了Unicode格式,已经无法获得文件的编码格式,但是对与ANSI和UTF-8格式倒是可以使用; 2、于是针对这个问题,专门做了一个如下的转换: $str = mb_convert_encoding ( $str, 'UTF-8','Unicode'); 只是需要在前面加上一个编码格式的判断。 完整代码如下: if ($fname = $_FILES['nickname']['tmp_name']) { //获取文件的编码方式 $contents = file_get_contents($fname); $encoding = mb_detect_encoding($contents, array('GB2312','GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII')); $fp=fopen($fname,"r")

php转换字符串编码 iconv与mb_convert_encoding的区别

不问归期 提交于 2019-12-01 21:03:27
PHP判断字符串编码函数mb_detect_encoding总结 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) iconv — 字符串按要求的字符编码来转换 mb_convert_encoding — 转换字符的编码 这 两个 函数功能类似都是用来转换字符串编码的; 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 注:需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉 参数:str——要编码的str、to_encoding——str要转换成编码类型、from_encoding——在转换前通过字符代码名称来指定。 它可以是一个 array 也可以是逗号分隔的枚举列表 。 如果没有提供 from_encoding,则会使用内部(internal)编码。 参见支持的编码。 支持的字符编码 当前 mbstring