2011-05-23 42 views
-1

海兰UTF-8!问题在PHP

我有一个在PHP的输出与变音符号的一个问题。 我的代码:

<?php 

echo"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" 
    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> 
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> 
<head> 
    <meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" /> 
    <title>Tabs</title> 
    <style type=\"text/css\" media=\"screen\"> "; 


echo "<script src=\"http://code.jquery.com/jquery-1.6.1.min.js\" type=\"text/javascript\" charset=\"utf-8\"></script> 
    <script type=\"text/javascript\" charset=\"utf-8\"> 
     $(function() { 
      var tabContainers = $('div.tabs > div'); 
      tabContainers.hide().filter(':first').show(); 

      $('div.tabs ul.tabNavigation a').click(function() { 
       tabContainers.hide(); 
       tabContainers.filter(this.hash).show(); 
       $('div.tabs ul.tabNavigation a').removeClass('selected'); 
       $(this).addClass('selected'); 
       return false; 
      }).filter(':first').click(); 
     }); 
    </script> 
</head> 
<body id=\"page\">"; 


echo "<div class=\"tabs\"> 
    <!-- tabs --> 
    <ul class=\"tabNavigation\"> 
    <li><a href=\"#user\">User</a></li> 
    <li><a href=\"#recipe\">Recipe</a></li> 
    <li><a href=\"#recipe_pos\">Recipe_Pos</a></li> 
    <li><a href=\"#ingred\">Ingredients</a></li> 
    <li><a href=\"#ingred_pos\">Ingredients_Pos</a></li> 
    </ul> 

    <!-- tab containers --> 
    <div id=\"user\"> 
    <p>Lorem ipsum dolor sit amet.</p> 
    </div> 
    <div id=\"recipe\">"; 


    include 'config.php'; 
    include 'opendb.php'; 
    $result = mysql_query("SELECT * FROM RECIPES '"); 
    while($row = mysql_fetch_array($result)) 
     { 
     echo "<p id=\"boarder\">"; 
     echo "<span>"; 
     echo "<b>" . $row['title'] . "</b><br/>"; 
     echo "<br />"; 
     echo $row['text']; 
     echo "<br /><br />"; 
     echo mysql_error(); 
     echo "</span>"; 
     echo "</p>"; 
     } 
    include 'closedb.php'; 

?> 

输出:

洋葱,大蒜和剥离Mhre 切成细末骰子。给 碎牛肉的锅和搅拌下,以自己的脂肪 慢煎 热量。盐和胡椒 。加入洋葱,大蒜,胡萝卜,煮 短。 肉汤ablschen,番茄酱,牛至unterrhren 该gestckelten番茄和番茄酱 。让它沸腾约40分钟 。库克意大利面条在 盐水,abgieen阻止 并与酱 服务。

+2

你知道你可以打出来的' deceze 2011-05-23 08:45:11

+1

这是一个字符编码的麻烦。确保您的数据库字符集,连接字符集和输出编码匹配。 – 2011-05-23 08:50:11

+0

以及它比呼应的JavaScript – shevski 2011-05-23 08:50:15

回答

1

这些字符看起来像无效字符的UTF-8输出,最有可能的ISO 8859-1分贝的内容。

你的数据库连接可能是ISO-8859-1编码,即使数据是UTF-8。

通过连接后做下面的查询修复它。对于MySQL 5.0.7 <:

mysql_query("SET NAMES utf8;"); 

较新的MySQL:

mysql_set_charset("utf8"); 
-2

删除所有的PHP和呼应出你的代码,并简单类型一个普通的HTML文件,我不明白你为什么要在这种情况下使用的回声。只有区域确实需要在PHP代码的一些计算的客人,像while循环

UPDATE

也许你需要一个不同的字符编码,只是选择了一个没有在你的数据库匹配的数据和您这两者都可以在你的HTML罚款指定它

元的content-type =“的编码正确,”

或在头PHP函数

+0

这不是我的问题。这只是一个test-php.How如何解决UTF-8的问题 – user547995 2011-05-23 08:49:32

+4

这不是他的问题的解决方案。他有一个字符编码问题 – 2011-05-23 08:49:34

0

输出看起来像我f起数据库读取你的数据不是UTF-8格式。为了测试,尝试一些其他的编码像ISO-8859-1。如果正确地显示文本,则故障的原因是不是UTF-8的。