2011-04-28 116 views
1

編碼問題您好,我有這樣的問題:我有一個整理latin1_bin MySQL數據庫。在數據庫中,我有整理utf8_slovak_ci表。所有collumns是文本。在我行有T IžŁšC(UTF8)字符值,但取代PHP代碼返回用UTF-8字符值?和其他不可讀的字符。在HTML頭我已經設置字符集爲UTF-8。請幫幫我。我有這樣的代碼:MySQL數據庫查詢在PHP

//From config file 
define ("DATABASE_SERVER", "localhost"); 
define ("DATABASE_LOGIN", "root"); 
define ("DATABASE_PASSWORD", "root"); 
define ("DATABASE_DATABASE", "novymost"); 

mysql_connect(DATABASE_SERVER, DATABASE_LOGIN, DATABASE_PASSWORD)or die(mysql_error()); 
mysql_select_db("novymost")or die(mysql_error()); 
$results=mysql_query("SELECT * FROM Downloads") or die(mysql_error()); 
$row = mysql_fetch_array($result); 
// Print out the contents of the entry 

while($rows = mysql_fetch_array($results)) 
{ 
echo("<li>"); 
echo "<a href=\"".$rows["URL"]; 
echo("\">"); 
echo "".$rows["TITLE"]; 
echo(" - ".$rows["SIZE"]); 
echo("</a>"); 
echo("<br/></li>"); 
} 
+0

什麼是您的DOCTYPE是什麼樣子? – fredley 2011-04-28 18:17:41

+0

'<!DOCTYPE HTML>' – 2011-04-28 18:18:49

回答

2

在PHP中:

header("Content-Type: text/html; charset=UTF-8"); 

在HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

在數據庫查詢之前:

mysql_query("set names utf8"); 

或者你也可以拉丁字母表轉換你到一個UTF8表:

INSERT INTO utf8table (utf8column) 
SELECT CONVERT(latin1field USING utf8) 
FROM latin1table;