一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP讀取文件,解決中文亂碼UTF-8的方法分析

PHP讀取文件,解決中文亂碼UTF-8的方法分析

2021-09-28 11:10luyaran PHP教程

這篇文章主要介紹了PHP讀取文件,解決中文亂碼UTF-8的方法,結合實例形式對比分析了PHP文件讀取及編碼轉換相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP讀取文件,解決中文亂碼UTF-8的方法。分享給大家供大家參考,具體如下:

?
1
2
3
4
5
6
7
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

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

不管用的

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

******************************************丑陋的分割線來告訴大家上面的不好的:下面的才是正確的方法···哈哈···**********************************************************

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);

終極版·····

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$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程序設計有所幫助。

原文鏈接:https://blog.csdn.net/luyaran/article/details/71079539

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 啪啪模拟器 | 亚洲国产精品热久久 | 精品国产乱码久久久久久软件 | 亚洲美女人黄网成人女 | 99久久www免费 | 猛操美女| 无码中文字幕av免费放 | 美女张开腿黄网站免费精品动漫 | 第一次不是你高清在线观看 | 521色香蕉网在线观看免费 | 国产欧美亚洲精品第一页青草 | 欧美日韩国产手机在线观看视频 | 美女胸又大又黄又www小说 | 青青草原国产 | 日韩美一区二区三区 | 乌克兰黄色录像 | 亚洲欧美精品一区天堂久久 | 日本一区二区三区国产 | 欧美精品亚洲精品日韩1818 | 痴mu动漫成年动漫在线观看 | 国产一卡2卡3卡四卡高清 | 王者荣耀瑶白色液体 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 美女黄板视频 | 亚洲毛片基地 | 国产极品麻豆91在线 | 亚州性夜夜射在线观看 | 成人中文字幕在线高清 | 校园情射 | 四虎影院最新网址 | 欧美国产日本精品一区二区三区 | 色综合天天五月色 | 欧美作爱福利免费观看视频 | 亚洲天堂一区二区在线观看 | 边摸边吃奶边做爽gif动态图 | 亚洲国产精品久久丫 | 欧美色图日韩 | 久久免费国产 | 美女禁区视频免费观看精选 | 免费视频片在线观看大片 | 地址二地址三2021变更 |