Re: [請益] utf-8顯示問題
※ 引述《jikotw74 (Deep)》之銘言:
: 小弟的經驗中
: 編碼有三個環節要注意
: 1.瀏覽器
: 就是<meta>標籤的charset屬性
: 會決定瀏覽器他用什麼什麼編碼開啟檔案
而且如果瀏覽器是IE的話,請注意META charset最好是在最前面第一行
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=utf-8">
尤其絕對不可以擺在任何UTF8文字之後,不然IE會認不出來
就算你擺在第一行IE有時也會硬是不用,這原理我也不清楚...
: 2.檔案本身
: 用進階點的文字編輯器開啟檔案
: 像我是用Notepad++
: 就可選擇編碼成 ANSI or UTF-8
: 這是最容易被遺忘的一項
: 如果你是用DW開啟新檔
: 預設是big5還是utf8開啟新檔
: 會讓檔案本身編碼不同(CS3前的經驗)
注意!
PHP的UTF-8文件不容許有BOM
會顯示出錯甚至導致ob_start之類的function會失敗
所以,千萬別用Windows內建的記事本編輯
當頁面只有部分文字問號化的話,通常就是那一頁編碼沒存好
: 3.資料庫
: 資料庫還可注意兩部分
: a.存放資料的編碼
: 基本上就是資料庫校對
: b.挖出來的方式
: mysql_query("SET NAMES 'utf8'");
: 這樣就能確定挖出來的資料是UTF8編碼
: ※ 引述《linbob09 (累斃了)》之銘言:
: : 這個問題在板上爬過文,但是都無解
: : 在內碼打了<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
: : 和這三個mysql_query('SET NAMES utf-8');
MySQL : MYSQL_QUERY("SET NAMES 'utf8'");
MySQLi: ->query("SET NAMES 'utf8'");
我記得只要這一個就可以全部UTF8了,其他幾個SET不用設定
基本上...MySQL的命令盡量用""去包,這樣下命令比較方面
: : mysql_query('SET CHARACTER_SET_CLIENT=utf-8');
: : mysql_query('SET CHARACTER_SET_RESULTS=utf-8');
: : mysql的校對也是utf-_8_general_ci,而在mysql的瀏覽網頁也都可以正常顯示中文
: : 但是偏偏在我寫的網頁裡面,中文的部分都會變成???
: : 想請教各位到底是哪邊還要改呢??
: : ----------------------------------------------------------------------------
: : 我剛剛試了樓下那篇跟這篇的方法,可以顯示中文了,但是我把它改回原來的樣子的話,
: : 就一樣可以顯示中文,有人可以告訴我這是差在哪邊嗎??
我猜是你META放不夠前面所以IE沒用UTF8開啟
改正之後IE記住這個網頁要用UTF8開所以暫時正常一陣子
快取沒了之後又回復原狀
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.180.163
推
08/17 02:48, , 1F
08/17 02:48, 1F
→
08/17 02:48, , 2F
08/17 02:48, 2F
→
08/17 02:49, , 3F
08/17 02:49, 3F
推
08/17 09:31, , 4F
08/17 09:31, 4F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章