❶ php與Mysql連接後,中文漢字亂碼怎麼解決
亂碼指的是計算機系統不能顯示正確的字元,而顯示其他無意義的字元或空白,如一堆ASCII Code。所顯示出來的文字統稱為亂碼。亂碼是因為所使用的字元的源碼在本地計算機上使用了錯誤的顯示字型檔,或在本地計算機的字型檔中找不到相應於源碼所指代的字元所致。
通俗點講:
亂碼就是你打開王頁或郵箱,裡面的字不是全中文的,而是一些亂七八糟莫名其妙的無意義的字元組合在一起。主要是計算機的字型檔出錯所致。
1一般出現在網頁,用網頁上面的查看——編碼——簡體中文即可解決。
2 出現亂碼一般是Windows系統字型檔的問題,可能是系統錯誤或不正常關機造成的,也可能是某些軟體需要使用操作系統以外的字型檔造成的。解決辦法得看具體的問題,一般情況下的Windows亂碼可以通過以下三種方法解決。
第一種方法是下載 解決Windows XP SP2亂碼補丁 V1.00 (華軍軟體園)
第二種是解決Windows系統錯誤造成的亂碼問題,重啟後用F8鍵激活系統菜單,進入安全模式。等系統檢查完畢,硬碟沒有響應後再重新正常退出並重新啟動計算機,正常進入Windows,字體一般就能自動恢復。這是因為Windows在進入安全模式時會重新索引字型檔及整理菜單。
第三種解決方法用於修正軟體造成的注冊表中關於字體部分設置出錯的問題。運行「Regedit」啟動注冊表編輯器。在「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc」鍵下有 「Associated CharSet」和「Associated DefaultFonts」 兩個鍵。當出現漢字亂碼時,這兩個鍵中的內容就可能不正確甚至不完整。它們的正確內容應該是「Associated CharSet」內有「(默認)、ANSI(00)、GB2312(86)、OEM(FF)、SYMBOL(02)」幾項串值,鍵值分別為「(未設置鍵值)、Yes、Yes、Yes、No」,而「Associated DefaultFonts」內有「(默認)、AssocSystemFont、FontPackegeDecorative、FontPackegeDontCare、FontPackegeModern、FontPackegeRoman、FontPackegeScript、FontPackegeSwiss」幾項串值,鍵值分別為「(未設置鍵值)、simsun.ttf、宋體、宋體、宋體、宋體、宋體、宋體」。重新啟動系統後漢字就應該顯示正確了。建議您在修改前先備份注冊表,以防修改錯誤使系統出現問題。
❷ 高手求救,php調用mysql資料庫不能顯示中文呈亂碼
以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導入數據後,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現亂碼的經驗,原因肯定是Mysql版本之間的差異問題。
只好查資料,發現了一個解決方法,就是在mysql_connect後面加一句SET
NAMES
UTF8,即可使得UTF8的資料庫消除亂碼,對於GBK的資料庫則使用SET
NAMES
GBK,代碼如下:
$mysql_mylink
=
mysql_connect($mysql_host,
$mysql_user,
$mysql_pass);
mysql_query("SET
NAMES
'GBK'");
❸ PHP插入MYSQL資料庫中文變成亂碼 問號
去MYSQL裡面設置,不要在PHP里設置MYSQL的編碼,亂碼肯定就是編碼問題無疑,推薦你先把MYSQL裡面表的編碼改好,然後再把PHP的編碼改好,這樣就應該沒問題了。
❹ PHP mysql 如何將從數據中讀入的中文亂碼轉換成中文字元
要解決亂碼首先需要知道出現亂碼的原因:
一、PHP+MySQL出現中文亂碼的原因。
1. MYSQL資料庫的編碼是utf8,與PHP網頁的編碼格式不一致,就會造成MYSQL中的中文亂碼。
2. 使用MYSQL中創建表、或者選擇欄位時設置的類型不是utf8,而網頁編碼不是utf8,也可能造成MYSQL中文亂碼.
3. PHP頁面的字元集與資料庫的編碼不一致。
4. PHP連接MYSQL資料庫,操作是設定的語句指定的編碼和頁面編碼,PHP頁面編碼不一致。
5. 用戶提交的HTML頁面編碼,和顯示數據的頁面編碼不一致 ,就肯定會造成PHP頁面亂碼.
二、解決中文亂碼:
1. 網頁編碼設置。一般在HTML代碼中的文件頭<html>中加入屬性:
<meta http-equiv=」Content-Type」 content=」text/html; charset=utf-8″>
保證,網頁是"utf-8"編碼。
2. PHP代碼設置。在php代碼的開始部分加入以下代碼:
header(」Content-type: text/html;charset=utf-8″);
且要求保存的文件編碼方式是utf-8,這樣就保證了該文件也是utf-8編碼。
3. 資料庫中表的欄位中存儲中文的部分,要設置為utf8_general_ci類型。
4.PHP在連接資料庫操作時,要設置操作的欄位類型為utf8,設置方法如下:
mysql_connect(』localhost』,'user』,'password』);mysql_select_db(』db』);mysql_query(」set names utf8;」); //**設置字元集***
❺ php連接資料庫插入數據後,mysql中查詢漢字字元亂碼
解決亂碼有幾種方式:
在讀取資料庫的時候設置連接編碼:mysql_query("set
names
utf8");
在讀取資料庫的php文件的頭部加:header("Content-type:text/html;charset=utf-8");
php文件不是utf8格式的編碼,需要轉化。用notpad++文本編輯器打開php文件,點擊菜單中的「格式」,查看是否是「以utf8
無bom格式編碼」,不是的話請轉成此格式。
html格式的在頭部加上:<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/>
你看看你的是哪一種情況,都對比做的一下,還不行在問我。
❻ php mysql資料庫 中文亂碼怎麼解決方案
cmd下,進入資料庫後先設置下 set names utf8; 或者 set names gbk;在進行查詢
如果是在PHP文件中,也是一樣 mysql_set_charset('set names utf8');
還需要將PHP文件編碼設置為utf-8 無bom的, 可以在文件第一行寫上這句
header('Content-type: text/html; charset=utf-8');
❼ php讀取mysql資料庫的內容後顯示為亂碼,中文變成問號怎麼辦
換成UTF8肯定不行,因為是問號,肯定不是三位元組到兩位元組
的問題,而是和拉丁1有關,因為問號是不可能轉換的意思
,失敗了,
解決:你需要
按數據流入的程序再配置好,再原路返回,,再換重新建庫,導入
,,OK
順便說一下,出的分太少了
❽ php顯示中文亂碼,phpmyadmin里的MySQL資料庫中文亂碼,如何解決
將瀏覽器中的編碼改成utf-8,資料庫中也是。在php頁面首行加上header("Content-type:
text/html;
charset=utf-8");,必須首行,前面不能有輸出。
還有,在查詢資料庫時加上:mysql_query(set
names
utf-8);
❾ php從mysql裡面調出來的中文是亂碼
MYSQL資料庫不僅每個庫有編碼設置甚至是每個欄位都有編碼設置.
出現亂碼肯定是你現在用的編碼混亂造成的
解決辦法:
第一步 先改資料庫編碼
先修改你的資料庫,如果你頁面用的是UTF-8編碼那麼你資料庫內的編碼也需要設置為UTF-8,每個欄位都需要設置.要保持內外一致,你可以用Navicat for MySQL工具,這個工具里能看得很清除,如果表\欄位很多的話你可以導出SQL語句,然後把SQL語句中相應的編碼替換例如gb2312替換成utf8,然後再重新創建一個庫,創建的時候字元集選擇utf8的再把SQL語句導入,檢查一下所有的編碼都是utf8的就OK
第二步 程序修改
1\讀庫的時候
mysql_query("set names utf8");
2\每個頁面頭部加上一句
header("content-Type: text/html; charset=utf-8");
3\檢查所有的編碼聲明是否正確
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4\檢查頁面中現有文字所使用的編碼是否正確,推薦你使用editplus在右下角會有顯示UTF-8或者ANSI,要保證所有帶有中文的文件打開後顯示的編碼集是UTF-8,如果不是的話可以將所有文件打開然後從菜單選擇"文檔"-"文件編碼"-"文件編碼(多文件)",然後選擇所有的文件點確定,更改編碼為UTF-8確定!
OK到此位置大功告成,所有的編碼一致,絕對不會再出現亂碼了,多說一句.對於MYSQL操作工具的選擇本人只推薦兩款,一是大家都熟悉的PHPMYADMIN 再就是Navicat for MySQL也有很多人都在用.至於MYSQL-font實在有些垃圾,有時顯示出來的資料庫結構和實際的都有差別....不敢苟同,另外MYSQL官方出的SQLyog對於編碼的支持太差勁了,很難控制具體的編碼,所以最好也不要用