亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php UTF8 文件的簽名問題

 更新時間:2009年10月30日 21:54:26   作者:  
在我們保存UTF8文本文件的時候,可以選擇帶簽名,或者不帶簽名。
也就是 有BOM 格式編碼,或者 無BOM格式編碼。
如果看文件的內(nèi)容,是看不出任何差別的,以下列文件(schema.sqlite.sql)內(nèi)容為例:
schema.sqlite.sql
復(fù)制代碼 代碼如下:

CREATE TABLE guestbook (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
email VARCHAR(32) NOT NULL DEFAULT 'noemail@test.com',
comment TEXT NULL,
created DATETIME NOT NULL
);
CREATE INDEX "id" ON "guestbook" ("id");

如果不帶簽名,則文件的大小為232字節(jié),如果帶簽名,則文件大小為235字節(jié)。
UTF8簽名有3個字節(jié)(內(nèi)容為:EFBBBF),是專門用來告訴軟件:該文件是UTF8編碼的。
在一般情況下,有無簽名不會帶來問題,因為編輯器或者其他軟件可以按照文本的內(nèi)容來推斷出是否是UTF8。
但有些時候還是會導(dǎo)致問題,比如上訴文件。該文件是sql語句文件,程序恰好要通過以下語句(php)來執(zhí)行該sql:
復(fù)制代碼 代碼如下:

$schemaSql = file_get_contents(dirname(__FILE__) . '/schema.sqlite.sql');
$dbAdapter->getConnection()->exec($schemaSql);

在這種情況下,帶有簽名的文件就會導(dǎo)致問題了,因為“UTF8簽名用的三個字節(jié)”其實是位于文件的最前面。所以導(dǎo)致了上面的語句無法成功運行。
解決的辦法也很簡單,去掉該文件UTF8簽名即可。
當(dāng)然,上面文件的內(nèi)容其實都是單字節(jié)的,是沒有必要保存為UTF8編碼的。

補充:全部是單字節(jié)內(nèi)容的文件除非加了UTF8簽名,不然再次打開文件時,還是系統(tǒng)的默認(rèn)編碼而已。

相關(guān)文章

  • PHP stream_context_create()作用和用法分析

    PHP stream_context_create()作用和用法分析

    創(chuàng)建并返回一個文本數(shù)據(jù)流并應(yīng)用各種選項,可用于fopen(),file_get_contents()等過程的超時設(shè)置、代理服務(wù)器、請求方式、頭信息設(shè)置的特殊過程。
    2011-03-03
  • php5.3不能連接mssql數(shù)據(jù)庫的解決方法

    php5.3不能連接mssql數(shù)據(jù)庫的解決方法

    這篇文章主要介紹了php5.3不能連接mssql數(shù)據(jù)庫的解決方法,針對php5.3之后不支持mssql_connect函數(shù)提供了對應(yīng)的解決方法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • curl實現(xiàn)站外采集的方法和技巧

    curl實現(xiàn)站外采集的方法和技巧

    curl是專門用來進行網(wǎng)絡(luò)交互的庫,提供了一堆自定義選項,用來應(yīng)對不同的環(huán)境,穩(wěn)定性自然要大于file_get_contents
    2014-01-01
  • 解決微信授權(quán)回調(diào)頁面域名只能設(shè)置一個的問題

    解決微信授權(quán)回調(diào)頁面域名只能設(shè)置一個的問題

    在做項目集成微信登錄以及微信支付的時候,都需要進行用戶授權(quán)。本文主要介紹了關(guān)于網(wǎng)頁授權(quán)回調(diào)域名的說明以及解決微信授權(quán)回調(diào)頁面域名只能設(shè)置一個問題的方案。需要的朋友可以參考借鑒
    2016-12-12
  • 詳解PHP中的mb_detect_encoding函數(shù)使用方法

    詳解PHP中的mb_detect_encoding函數(shù)使用方法

    這篇文章主要介紹了詳解PHP中的mb_detect_encoding函數(shù)使用方法,包括對字符串編碼的轉(zhuǎn)換和判斷以及Call to undefined function mb_detect_encoding()錯誤的解決,需要的朋友可以參考下
    2015-08-08
  • ThinkPHP中自定義目錄結(jié)構(gòu)的設(shè)置方法

    ThinkPHP中自定義目錄結(jié)構(gòu)的設(shè)置方法

    現(xiàn)在很多朋友喜歡使用ThinkPHP但它會生成的很多目錄有些朋友不喜歡,這里為大家分享下將目錄都放到include目錄的方法,這樣就干凈多了
    2014-08-08
  • PHP 簡易輸出CSV表格文件的方法詳解

    PHP 簡易輸出CSV表格文件的方法詳解

    本篇文章是對PHP 簡易輸出CSV表格文件的方法進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php5中類的學(xué)習(xí)

    php5中類的學(xué)習(xí)

    類的結(jié)構(gòu): 類的內(nèi)部能可能有三種東西,就是常量(constant),屬性(property)和方法(method),功能可以理解成類外部的常量,變量和函數(shù)。
    2008-03-03
  • WordPress中郵件的一些修改和自定義技巧

    WordPress中郵件的一些修改和自定義技巧

    這篇文章主要介紹了WordPress中郵件的一些修改和自定義技巧,包括更改郵件為HTML形式以及定義SMTP郵件的發(fā)件人的方法,需要的朋友可以參考下
    2015-12-12
  • PHP Google的translate API代碼

    PHP Google的translate API代碼

    這里我還是接上話使用Google的translate工具翻譯 .NET translate API的一篇文字,上篇是c#實現(xiàn)的,我這里再用PHP實現(xiàn)一下。
    2008-12-12

最新評論