① php 怎麼連接中文名稱資料庫(SqlServer)
php頁面是utf八的編碼,然後命令發給資料庫的時候轉換下編碼,例子見圖
② php 向資料庫發送中文字元無法查詢
你的問題可能是資料庫連接時未指定字元集:$conn->query("set names utf8");
詳細如下:
將中文字元轉換一下,可能你的網頁編碼是ansi非utf-8的:
$w=iconv("gb2312","utf-8",$w);
不過我不確定這樣做你能否成功。關於字元有以下幾點你看下:
資料庫連接時: $conn->query("set names gbk");
資料庫的字元集:建議建立資料庫時就指定字元集,比如gbk或者utf-8,這樣你就沒必要為單獨的表或者欄位指定字元集
網頁字元:<META CONTENT="text/html; charset=gbk" HTTP-EQUIV="Content-Type" />
保持著三者使用的字元集一樣,基本能解決你的問題。
當然,在使用ajax時。js傳遞過來的是utf-8,如果你的php文件和資料庫使用的是中文字元集如gbk,gb2312,那麼就需要對該值用iconv函數轉換下字元集,如:$w=iconv("utf-8","gb2312",$w);
總之,需要這幾塊的字元集保持一致。
③ 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連接資料庫用戶名不支持中文,怎麼解決
估計你資料庫中的那個中文用戶名讀出來就是亂碼,所以比對起來就是不一樣的.要設置資料庫默認字元集.
⑤ 在利用php與mysql資料庫連接時為什麼在資料庫返回信息是會出現中文亂碼現象
我也出現過很多次,不過後來發現,亂碼還與文件編碼有關,就是記事本打開php文件,再另存為看是什麼編碼的如果是ANSI編碼的在windows下應該會正常產生編碼,如果是其他的那就改成ANSI再保存,要注意記事本中代碼有沒有亂碼,沒有再保存。
⑥ Php Dreamweaver 連接資料庫出現中文亂碼
這個問題提的很好,因為你的網頁編碼是gb2312。可以把網頁設成utf-8,在頁面屬性裡面。也可以把資料庫那頭全部gb2312。
⑦ php讀取mysql中文數據出現亂碼的解決方法
1.PHP頁面語言本身的編碼類型不合適,這時候,你直接在腳本中寫的中文肯定是亂碼,不用說資料庫了
解決方法:選擇'UTF8'或者'gb2312',這樣客戶瀏覽器會自動選擇並出現正確的中文顯示。注意:'UTF8'或者'gb2312'都可以正確顯示中文的。
2.資料庫MySQL中的編碼類型不正確。
解決方法:創建資料庫的時候,MySQL
字元集選擇'UTF8',MySQL
連接校對選擇utf8_general_ci,這樣創建的資料庫用來存儲中文肯定沒有問題,
否則,你的中文首先在MySQL中就是亂碼,更不要期望它會給你在PHP頁面中顯示正確。
3.與平時的腳本編輯環境有關。比如,有些內容是自己用word寫的,有些是用記事本寫的,有些用editplus、ultraplus等文本編輯器。有時候就直接在DW中寫中文了,
解決方法:盡量用同一種編輯器。如果是拷貝來得既有的內容,建議用ultraplus中的編碼轉換功能把它轉換成utf8或者gb2312。
到底轉換成什麼類型並不重要,關鍵要求你的PHP
WEB應用程序中的編碼要一致就行。
4.編程訪問
MySQL時,建議添加一行代碼:mysql_query("SET
NAMES
'GBK'");
⑧ php中為什麼插入資料庫的中文變成亂碼
請將資料庫的編碼,表的編碼以及欄位的編碼與網頁代碼的編碼保持一致。
另外注意文件本身的編碼與html代碼頭meta中的編碼說明保持一致。
那你看看是不是在連接資料庫的時候採用了utf8格式,語法如mysql_query('set
names
utf8');
⑨ php連接mysql資料庫的顯示中文問題
在每次連接資料庫之後,先執行一個查詢,告訴資料庫你要用的字元集。然後再進行插入,讀出等其他查詢。這個查詢的sql語句是:
$que='set names "gb2312"';
將$que作為查詢內容執行一個查詢。
其中的gb2312可以換成其他的,比如gbk,utf8等。
你以後再輸入的數據就可以正常顯示了。
⑩ PHP與mysql連接後顯示中文亂碼
我想知道一件事情。
你能不能把亂碼的情況發出圖片呢
你看看數據表是不是亂碼。
我挺想知道的
這樣我好判斷問題啊
如果你的亂碼是這樣
那麼你的動態代碼就這么寫:
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<!--聲明頭文件,嘿嘿header管不到這里啊。所以你得自己聲明了,字元集為utf8-->
<?php
header("Content-Type:text/html;charset:utf-8");
$link=mysql_connect("127.0.0.1","root","");
mysql_select_db("s",$link);
mysql_query("SETNAMESUTF8");
$sql="SELECT*FROMs";
$result=mysql_query($sql);
//print_r($row=mysql_fetch_array($result));
while($row=mysql_fetch_array($result))
{
echo"<tableborder='1'>";
echo"<tr><td>序號</td><td>學號</td><td>姓名</td><td>班級</td></tr>";
echo"<tr><td>".$row['id']."</td><td>".$row['xh']."</td><td>".$row['xm']."</td><td>".$row['bj']."</td></tr>";
echo"</table>";
}
?>
如果不行繼續追問就行了
記得貼出圖片啊。