2013-08-22 121 views
0

好的,請和我一起。我真的很糟糕。我從朋友那裏得到的幫助很少,他知道一些編碼,但沒有atm。PHP和mysql字符集問題

我有一個包含存儲在UTF8_general_ci

然後數據在WordPress我這就要求文件編號1,haku.php頁MySQL數據庫。內容如下:

<?php 

$result = mysql_query("SELECT DISTINCT jalleenmyyja_postitp FROM jalleenmyyjat order by jalleenmyyja_postitp"); 
while($r = mysql_fetch_array($result)){ 
if ($r["jalleenmyyja_postitp"] != "")echo '<option value="'.$r["jalleenmyyja_postitp"] .'">'. $r["jalleenmyyja_postitp"] .'</option>'; 
} 


?> 

那些然後放在下拉菜單。到現在爲止還挺好。然後,當一些選擇下拉菜單中完成,它應該返回結果低於它的文件號2,低於JS:

function haeyritys(x){ 
jQuery.ajax({ 
    type: "POST", 
    url: "/yrityshaku.php", 
    data: "kaupunki=" + x, 
    success: function(data){ 
    document.getElementById('selResult').innerHTML=data; 
    } 

}); 
} 

那麼這個文件號碼後3.從返回數據庫中的數據。

if($_REQUEST["kaupunki"] !=""){ 

    $con = mysql_connect($host, $user, $pass); 

    mysql_select_db($db_name); 

    $result = mysql_query("select * from jalleenmyyjat where jalleenmyyja_postitp = '" . utf8_decode($_REQUEST["kaupunki"]) ."' order by jalleenmyyja_nimi"); 



    if (mysql_num_rows($result) == 0){ 

      echo '<div style="border-bottom:1px solid #ccc;padding:5px;"><b>Ei tuloksia...</b>'; 

    }else{ 

     while($r = mysql_fetch_array($result)){ 

      if ($r["google"] != ""){echo '<a onclick="location.href=\'#top\'" href="'. $r["google"] .'" target="map">';}else{echo '<a onclick="location.href=\'#top\'" href="/eikarttaa.html" target="map">';} 

      echo '<div style="border-bottom:1px solid #ccc;padding:5px;"><b>' . $r["jalleenmyyja_nimi"] . '</b>'; 

      if ($r["jalleenmyyja_osoite"] != "")echo '<br>' . $r["jalleenmyyja_osoite"]; 

      if ($r["jalleenmyyja_postino"] !="" || $r["jalleenmyyja_postitp"] !="")echo "<br/>" . $r["jalleenmyyja_postino"] . " ". $r["jalleenmyyja_postitp"]; 

      if ($r["jalleenmyyja_puh"] != "") echo "<br/>Puh: ". $r["jalleenmyyja_puh"]; 

      if ($r["www"] != "")echo '<br/><a target="_blank" href="'.$r["www"].'">Verkkosivuille &raquo;</a>'; 

      echo '</div>'; 

      echo '</a>'; 


     } 

    } 



    mysql_close($con); 



} 

?> 

但是,外來字符是問號。如果我將mysql_set_charset('utf8');添加到打開數據庫連接的文件編號3,結果會正確顯示符號,但是可能具有該符號的下拉列表中的數據不會返回結果!所以它是一種方式或其他。

+1

具有[UTF-8所有的通方式](http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – Anigel

回答

0

如果您在網頁上看到問號而不是字符,則瀏覽器可能不知道哪個字符集是正確的。你可以告訴瀏覽器,字符集通過以下方法之一來使用:

HTML5:

<meta charset="UTF-8"> 

HTML4:

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

XHTML 1.x的:

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

XHTML 1.x as XML:

<?xml version="1.0" encoding="UTF-8"?> 

元標籤屬於html文檔的頭部,應放置在頂部附近(位於<頭部>和< /頭部>之間)。如果不確定要使用哪一個,請使用html4來支持舊瀏覽器,如果支持現代瀏覽器就足夠了。

Source

+0

讀但是,這是嵌入在具有正確utf8的WordPress站點中,如果我嘗試從瀏覽器中更改編碼,它會變得更加瘋狂。 – SirRahikkala

+0

yrityshaku.php(來自ajax調用)可能不會聲明編碼。 –