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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国色天香高清版 | 免费在线电视 | 欧美不卡一区二区三区 | 国产一级一级片 | 亚洲国产香蕉视频欧美 | 香蕉久久久久 | 农村妇女野战bbxxx农村妇女 | 免费看黄色片网站 | 欧美三级不卡视频 | 日本大学生xxxxx69泡妞 | 69堂最新地域网名 | 成人影院在线看 | 欧美综合亚洲图片综合区 | 无码AV熟妇素人内射V在线 | 国产精品天天在线 | 日韩成人小视频 | 日本高清视频一区二区 | 性色香蕉AV久久久天天网 | 91香蕉在线 | 日韩精品欧美激情国产一区 | 国产精品色拉拉免费看 | hd在线观看免费高清视频 | 我和黑色丝袜班主任 | 激情影院费观看 | 欧美日韩高清不卡一区二区三区 | 精品国产乱码久久久久久软件 | 亚洲精品国产SUV | 久久AV国产麻豆HD真实 | 成人精品视频一区二区在线 | 大团圆6全文在线阅读 | 免费看隐私美女 | 日本高清全集免费观看 | 草莓绿巨人香蕉茄子芭乐 | 偷偷狠狠的日日高清完整视频 | 国产重口老太伦 | 国产视频二区 | 日韩欧美亚洲一区二区综合 | 四虎免费影院4hu永久免费 | 精品国产成a人在线观看 | 国产欧美日韩亚洲精品区2345 | 勾搭已婚高h |