phputf8亂碼
。。。那是因為你的文件保存成了
GB2312編碼
你把文件保存成UTF-8看下
文件默認編碼是和IDE
有關的。
你從資料庫獲取的數據是
通過set
names
utf8
這個沒問題
你META設置的是UTF-8
瀏覽器也知道用UTF-8
去瀏覽
也沒問題
問題是你這個文件本身的編碼要是UTF-8才行。
❷ php中用utf8編碼輸出中文就是亂碼
header("Content-Type: text/html; charset=utf-8");
可以省略,因為在meta已經定義了。
亂碼的原因是保存文件時,文件的編碼與顯示編碼不一致,只要另存為一次就好了
❸ php連mysql用 utf-8編碼亂碼怎麼辦
1.修改my.ini:[mysql]default-character-set=utf8[mysqld]default-character-set=utf8default-storage-engine=MyISAM在[mysqld]下加入:default-collation=utf8_bininit_connect='SET
NAMES
utf8'
2.在需要做資料庫操作的php程序前面加上mb_internal_encoding('utf-8');
3.create
table最後邊加上ENGINE=MyISAM
DEFAULT
CHARSET=utf8
COLLATE=utf8_bin
4.phpMyAdmin/config.inc.php
$cfg['DefaultCharset']
=
'utf-8';$cfg['RecodingEngine']
=
'iconv';
5.phpMyAdmin/libraries/string.lib.php將第41行的mb_internal_encoding($GLOBALS['charset']);改為:mb_internal_encoding('utf-8');
6.phpAdmin導出數據時把"二進制區域使用十六進制顯示"的勾去掉
❹ php顯示資料庫里的中文亂碼.。ps:資料庫和php顯示都設置了utf8,為什麼還會顯示亂碼求解答!!
原因:
這個是因為你的瀏覽默認解析編碼不是 UTF-8,這種情況瀏覽器他不知道你的文字要顯示 什麼編碼。
解決方案:
要麼設置瀏覽器默認編碼為 UTF-8
在輸出列印前,先輸出 <meta charset="utf-8">來告訴瀏覽器你想要使用的編碼方式。
栗子:
echo '<meta charset="utf-8">';//將這行放到第一行輸出
echo "<tr><><tr/>";//
❺ PHP utf-8 js 亂碼
你的編碼有問題,表面是UTF-8,實際可能不是。
方法:
把你現在的所有代碼復制,黏貼到txt中。然後另存為。在txt的另存界面
看到編碼了么?選擇UTF-8;另外ANSI就是電腦默認編碼,中國的話都是GB-2312;
用txt重新整理一下編碼就不會亂碼了~
❻ php與資料庫中,都是用的utf8編碼,但還是亂碼
你的php代碼還有請求頭的編碼和響應頭的編碼也都要統一成utf8,只控制資料庫的編碼不行的
❼ php 有關utf-8亂碼的問題
伺服器上用了別的編碼,應該是windows的伺服器吧?有可能是GBK或者GB2312編碼。
兩種方法解決此問題。
1、先在本地把所有文件都換成伺服器的編碼,然後再傳上去;此法,你的php編碼需要與伺服器上的資料庫編碼一致,也既有可能是那兩種編碼。
2、修改伺服器上的編碼為utf-8。此方法需要你有足夠的許可權去修改伺服器上apache或者IIS編碼。如果修改編碼成功,你的資料庫也不用換編碼。
如果保持你的網頁編碼不變,那就要修改mysql編碼,即像stjdydayou
所言,執行資料庫數據插入、更改、查詢時,執行一條查詢語句:
mysql_query("set
names
'utf-8'");
之所有用utf-8編碼,是因為你的php編碼目前為utf-8.
❽ PHP已經聲明是utf8編碼了,為什麼瀏覽器識別不出來,還是亂碼
php的文件用記事本打開,然後點擊另存,選擇utf-8編碼後保存
❾ PHP使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦
資料庫使用utf8編碼,需要在操作的過程中統一全部編碼。
1.資料庫默認編碼
CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';
2.表默認編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
3.欄位默認編碼
默認情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改
這里修改編碼測試我將utf8 改為 gb2312 ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)
ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;
--修改表編碼後,查看建表語句
showcreatetable`tablea`;
--可以看到輸出的建表語句中欄位單獨設置了編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
--需要手動修改欄位編碼
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;
4.當前資料庫連接的編碼
連接數時設置編碼
//PDO連接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);
//mysqli連接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");
通過以上幾步操作,基本可以保證資料庫使用過程中不會出現亂碼
❿ php設置成utf-8還是亂碼了怎麼辦
有時後php代碼里邊設置了「header("Content-type:
text/html;
charset=utf-8");」不一定會管用,因為有時文件本身格式就是錯誤的,你先把代碼復制到一個txt文件里邊,然後用代碼工具對php文件進行轉碼成utf-8格式(這時你就會發現里邊的代碼亂碼了,由其是中文和特殊字元),再把txt里邊的代碼復制覆蓋原來的php文件內容,然後保存即可,例如用Notepad++
工具
可以對文件本身進行轉碼