最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

怎么解决php读取文件乱码问题

来源:动视网 责编:小采 时间:2020-11-27 13:59:42
文档

怎么解决php读取文件乱码问题

怎么解决php读取文件乱码问题:php读取文件乱码的解决办法:首先打开相应的代码文件;然后通过iconv($encodType, "utf-8", $content); 方法解决中文乱码即可。推荐:《PHP视频教程》PHP读取文件,解决中文乱码UTF-8$opts = array( 'file
推荐度:
导读怎么解决php读取文件乱码问题:php读取文件乱码的解决办法:首先打开相应的代码文件;然后通过iconv($encodType, "utf-8", $content); 方法解决中文乱码即可。推荐:《PHP视频教程》PHP读取文件,解决中文乱码UTF-8$opts = array( 'file


推荐:《PHP视频教程》

PHP读取文件,解决中文乱码UTF-8

$opts = array( 
'file' => array( 
 'encoding' => "utf-8" 
 ) 
); 
$opts = array('http' => array('encoding' => 'utf-8')); 
$ctxt = stream_context_create($opts); 
$content = file_get_contents($filePath, FILE_TEXT, $ctxt);

最简单的就是将GF2312→UTF-8

$str=iconv("gb2312", "utf-8", $str);

不管用的

$content
 = mb_convert_encoding(
$content
, 
"UTF-8"
, 
"auto"
);

******************************************丑陋的分割线来告诉大家上面的不好的:下面的才是正确的方法···哈哈···**********************************************************

define('UTF32_BIG_ENDIAN_BOM', chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF)); 
define('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00)); 
define('UTF16_BIG_ENDIAN_BOM', chr(0xFE) . chr(0xFF)); 
define('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE)); 
define('UTF8_BOM', chr(0xEF) . chr(0xBB) . chr(0xBF)); 
 
$text = file_get_contents($newPath); 
$first2 = substr($text, 0, 2); 
$first3 = substr($text, 0, 3); 
$first4 = substr($text, 0, 3); 
$encodType = ""; 
if ($first3 == UTF8_BOM) 
 $encodType = 'UTF-8 BOM'; 
else if ($first4 == UTF32_BIG_ENDIAN_BOM) 
 $encodType = 'UTF-32BE'; 
else if ($first4 == UTF32_LITTLE_ENDIAN_BOM) 
 $encodType = 'UTF-32LE'; 
else if ($first2 == UTF16_BIG_ENDIAN_BOM) 
 $encodType = 'UTF-16BE'; 
else if ($first2 == UTF16_LITTLE_ENDIAN_BOM) 
 $encodType = 'UTF-16LE'; 
 
$content = file_get_contents($newPath); 
 
$content = iconv($encodType, "utf-8", $content);

终极版·····

$text = file_get_contents($filePath); 
 //$encodType = mb_detect_encoding($text); 
 define('UTF32_BIG_ENDIAN_BOM', chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF)); 
 define('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00)); 
 define('UTF16_BIG_ENDIAN_BOM', chr(0xFE) . chr(0xFF)); 
 define('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE)); 
 define('UTF8_BOM', chr(0xEF) . chr(0xBB) . chr(0xBF)); 
 $first2 = substr($text, 0, 2); 
 $first3 = substr($text, 0, 3); 
 $first4 = substr($text, 0, 3); 
 $encodType = ""; 
 if ($first3 == UTF8_BOM) 
 $encodType = 'UTF-8 BOM'; 
 else if ($first4 == UTF32_BIG_ENDIAN_BOM) 
 $encodType = 'UTF-32BE'; 
 else if ($first4 == UTF32_LITTLE_ENDIAN_BOM) 
 $encodType = 'UTF-32LE'; 
 else if ($first2 == UTF16_BIG_ENDIAN_BOM) 
 $encodType = 'UTF-16BE'; 
 else if ($first2 == UTF16_LITTLE_ENDIAN_BOM) 
 $encodType = 'UTF-16LE'; 
 
 //下面的判断主要还是判断ANSI编码的· 
 if ($encodType == '') {//即默认创建的txt文本-ANSI编码的 
 $content = iconv("GBK", "UTF-8", $text); 
 } else if ($encodType == 'UTF-8 BOM') {//本来就是UTF-8不用转换 
 $content = $text; 
 } else {//其他的格式都转化为UTF-8就可以了 
 $content = iconv($encodType, "UTF-8", $text); 
 }

以上的终极版·可以适应中文操作windows系统建立的ANSI""""``UTF-8"""Unicode"``的txt文本····

文档

怎么解决php读取文件乱码问题

怎么解决php读取文件乱码问题:php读取文件乱码的解决办法:首先打开相应的代码文件;然后通过iconv($encodType, "utf-8", $content); 方法解决中文乱码即可。推荐:《PHP视频教程》PHP读取文件,解决中文乱码UTF-8$opts = array( 'file
推荐度:
标签: 文档 乱码 解决
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top