PhP中的UTF-8问题

| ! 我在umlauts的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\';

?>
输出:   Zwiebel,诺贝尔赫与施勒   和虚伪的W.rfel schneiden。   Hackfleisch在Pfanne geben中,   朗萨姆·埃里岑·本·恩·费特   勒伦(Rehren)折磨。萨尔森与   pfeffern。茨诺贝尔恩(Knoblauch und)   M.hren dazugeben和kurz mitbraten。   米特·德·布鲁·阿布申   牛至,死胎Tomaten和   Tomatenketchup无法处理。埃特瓦40   Minuten Einkochen Lassen。意大利面   Salzwasser bissfest kochen,阿吉根,   酱汁和酱汁   servieren。     
已邀请:
这些字符看起来像UTF-8输出中的无效字符,最有可能是ISO-8859-1。 即使数据使用UTF-8,您的数据库连接也可能是ISO-8859-1编码的。 连接后,通过执行以下查询来修复它。对于mySQL <5.0.7:
mysql_query(\"SET NAMES utf8;\");
对于较新的mySQL:
mysql_set_charset(\"utf8\"); 
    
输出看起来好像您从数据库读取的数据不是utf-8格式。为了进行测试,请尝试使用其他一些编码,例如
ISO-8859-1
。如果这样可以正确显示文本,则说明问题的原因是db内容根本不是utf-8。     
从代码中删除所有的php和echos,然后简单地键入一个普通的HTML文件,在这种情况下,我不明白为什么要使用echo。只有需要一些计算的区域才会留在php标签中,例如while循环 更新 也许您需要一种不同的字符编码,只需选择一个与数据库中数据匹配的字符,然后就可以在html中指定它了。 meta content-type = \'正确编码\' 或在php标头函数中     

要回复问题请先登录注册