php設置字元編碼
❶ Notepad++開發php如何設置正確的UTF-8編碼
在目錄裡面的格式→以UTF-8無bom格式編碼。
若是本來就是ansi的文件,可選擇下面的轉為utf-8無bom格式
❷ 如何用php設置utf-8編碼
在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。
❸ PHP中哪個函數可以強制統一設置所有字元編碼為指定編碼
一般都是utf-8和gbk,gbk的一般沒有什麼問題。
utf-8最好在apache服務端就設定為utf-8。然後其他的地方,資料庫、文件都設置為UTF-8,就不會有錯了。
在php函數庫有一個函數:iconv(),iconv函數庫能夠完成各種字元集間的轉換,是php編程中不可缺少的基礎函數庫。
最近在做一個小偷程序,需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元"—"到gb2312時會出錯。
php編程技術:
PHP是一種易於學習和使用的伺服器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點。 PHP是能讓你生成動態網頁的工具之一。PHP網頁文件被當作一般HTML網頁文件來處理並且在編輯時你可以用編輯HTML的常規方法編寫PHP。
❹ php怎麼設置編碼
header("Content-type: text/html; charset=utf-8");
另外你的編輯器編碼也要對應哦
a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。
b. 如果欲使用utf-8編碼,那麼php要輸出頭 :header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的編碼格式為utf-8。
最近需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元"—"到gb2312時會出錯。解決方法很簡單,就是在 需要轉成的編碼後加 "//IGNORE" 也就是iconv函數第二個參數後,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。
❺ 淺析PHP中的字元串編碼轉換(自動識別原編碼)
本篇文章是對PHP中字元串編碼轉換的實現代碼進行了詳細的分析介紹,需要的朋友參考下
復制代碼
代碼如下:
/**
*
對數據進行編碼轉換
*
@param
array/string
$data
數組
*
@param
string
$output
轉換後的編碼
*/
function
array_iconv($data,$output
=
'utf-8')
{
$encode_arr
=
array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');
$encoded
=
mb_detect_encoding($data,
$encode_arr);//自動判斷編碼
if
(!is_array($data))
{
return
mb_convert_encoding($data,
$output,
$encoded);
}
else
{
foreach
($data
as
$key=>$val)
{
if(is_array($val))
{
$data[$key]
=
array_iconv($val,
$input,
$output);
}
else
{
$data[$key]
=
mb_convert_encoding($data,
$output,
$encoded);
}
}
return
$data;
}
}
❻ 如何解決PHP在utf-8編碼下中文顯示亂碼問題
需要轉換一下編碼:
$str=strftime("Todayis%A");
$str=iconv("gbk","utf-8",$str);//轉碼函數
setlocale(LC_ALL,"chs");
echo"<p>中文簡體格式:".$str."</p>";
❼ 怎麼設置phpstorm的字元編碼
1首先進入設置, 2先設置軟體界面上的字體。進入設置之後,選擇(外觀)Appearance。之後軟體的截圖就會變的清晰不少啦。 3然後再設置編輯器內容的字體和大校如圖進入編輯器之後,選擇「字體和顏色」,然後先隨便保存一個。
❽ php yii框架怎麼設置字體編碼格式
今天在開發的時候需要將excel文件中數據導入到相關的配置文件中,我按照過去經常使用的方法,先將excel導出成csv文件,然後使用fgetcsv函數讀取文件的內容,通過Yii框架中的CConfigure類導出成配置文件,然後在檢查的時候發現導出的數組中有些值中間有一些多餘的反斜杠,這些反斜杠一般出現在繁體中文或者日文的文字中。
一開始我先檢查了csv和excel文件中的欄位,發現並沒有什麼問題,之後我查看了CConfigure類中的saveAsString函數,發現他使用了php中的var_export函數來實現導入配置文件的功能,然後,我又使用var_export輸出會出現問題的某個欄位,發現確實在字元串中添加了反斜杠,而我直接使用echo或者var_mp輸出時,則沒有這個情況發生,這個時候我明白問題是出在var_export這個函數上。
在查閱了相關的資料後我發現var_export這個函數會自動轉義,也許是這個原因導致了字元串中自動添加了反斜杠,可是字元串本身並沒有特殊字元,為什麼var_export還是會添加反斜杠,這個讓我百思不得其解,我查看了出現問題的字元串的2進制編碼,發現出現反斜杠的地方本身的單個字元的ascii碼也是反斜杠,也就是說可能是var_export在轉義時針對單個反斜杠字元進行了轉義?這個原因我最後也沒有搞明白。
不過在我不知道如何解決這個問題的時候,我突然想到我的csv的文字編碼是gbk的,因為是通過excel直接轉的格式,然後我導出的文件編碼是utf-8的格式,同時我的代碼本身也是utf-8的格式,雖然我最後通過格式轉換,成功把gbk的字元串轉換成utf-8導出,但是在轉換的過程中可能會出現問題(當時想的是這樣,不過之後考慮了一下,因為之前在gbk格式下使用var_export已經出現了問題,因此應該不是轉換過程中的問題,應該是var_export處理gbk格式的漢字字元串時產生的bug?),於是我將csv文件全部轉換成utf-8格式,重新導入文件,成功解決。
其實在解決的過程中,很早就想到可能是編碼的問題,但是一直沒有發現excel轉換的csv文件的格式問題,因為之前導出的配置文件沒有漢字,因此沒有出現過這一類的問題,於是就忽略了,不過最後雖然解決了問題,但是問題本身的原因還是不明,推測極有可能是因為gbk編碼和var_export的兼容導致的問題,果然開發中應該還是盡量使用utf-8統一編碼,應該會減少很多不明的錯誤。
2013.1.19更新:經過思考,覺得應該是對於gbk編碼的字元串使用var_export時,函數對於單個字元表示為反斜杠的字元添加了反斜杠的轉義,因此使得該處的字元變為兩個反斜杠,同時因為在顯示時使用了gbk編碼,導致添加的反斜杠作為前一個漢字字元的一部分被顯示,而原來的反斜杠字元則單獨顯示了出來。
❾ php 字元編碼問題
做php最好是編碼統一, 頁面utf8, 資料庫gb2312, 這樣做,除了難為你自己還有別的好處嗎?
如果你非要這么做, 那你必須將$name11="張三" 轉成gb2312編碼, 然後讀取出來顯示到頁面的時候, 必須轉成utf8, 不累的慌?
❿ 如何用 PHP 搞定中文字元編碼問題
php根本沒法准確地判斷出用戶提供的源文件內容是啥編碼字元集.
我目前的方法.
$encoding = mb_detect_encoding($str, "auto");
mb_substitute_character("none");
mb_convert_encoding($str, 'UTF-8', $encoding);