程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中文亂碼問題和MySql出現中文亂碼的解決方法

php中文亂碼問題和MySql出現中文亂碼的解決方法

編輯:關於PHP編程

php教程中文亂碼問題和mysql教程出現中文亂碼的解決方法

<html>
<head>
<title></title>
</head>
<body>
<?php
$mysql_server_name='localhost';
$mysql_username='root';
$mysql_password='000000';
$mysql_database='lib';
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
$sql="select name,age from mytb";
print($conn);
$rs=mysql_db_query("lib","select * from mytb",$conn);
print("
<br>");
while($row = mysql_fetch_object($rs)){
print ($row->name.":".$row->age."<br>");
}
mysql_close($conn);
?>

  

顯示如下:

resource id #1

dd:54
ddd:8
??:15
???:25
??:32


  mysql編碼:utf8,gbk都試過了。mysql font 和命令行顯示都正確。

  問題補充:

  亂碼:

???:15
???:25
??:32


  這幾行,數據庫教程裡的值是漢字.顯示出來的是問號.

  解決辦法:

 

 在$rs=mysql_db_query("lib","select * from mytb",$conn);

  前面加上

  

mysql_query("set names gb2312");或者mysql_query("set names gbk");


下面看一下關於解決亂碼的方法


.gb2312,gbk,utf8等支持多字節編碼的字符集都可以儲存漢字,gb2312中的漢字數量遠少於gbk,而gb2312,gbk等都可在utf8下編碼。

  二.用命令show variables like 'character_set_%';查看當前字符集設定:

mysql> show variables like 'character_set_%';
+--------------------------+--------+
| variable_name      | value |
+--------------------------+--------+
| character_set_client   | gb2312 |
| character_set_connection | gb2312 |
| character_set_database  | gb2312 |
| character_set_filesystem | binary |
| character_set_results  | gb2312 |
| character_set_server   | latin1 |
| character_set_system   | utf8  |
+--------------------------+--------+
7 rows in set (0.02 sec)

  

(這裡設置的字符是gb2312)

  顯示中文亂碼主要有兩個設置:character_set_connection 和character_set_results ,

  如果你的這兩個設置不支持中文編碼,就會出現亂碼,只要:set character_set_results =gbk;就設置中文編碼了。

  三.set names charset_name;可以一次性設置客戶端的所有字符集。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved