Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PhP中的UTF-8问题_Php_Html_Utf 8_Diacritics - Fatal编程技术网

PhP中的UTF-8问题

PhP中的UTF-8问题,php,html,utf-8,diacritics,Php,Html,Utf 8,Diacritics,嘿 我对使用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\"> &

我对使用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';

?>

从代码中删除所有php和echo,然后简单地键入一个普通HTML文件,我不明白为什么在这种情况下使用echo。只有需要一些计算的区域保留在php标记中,比如while循环

更新

可能您需要不同的字符编码,只需选择与数据库中的数据匹配的字符编码,您可以在html中指定

元内容类型='correct-encoding'


或者在php头函数中,输出看起来好像从db读取的数据不是utf-8格式。对于测试,请尝试其他编码,如
ISO-8859-1
。如果文本显示正确,则问题的原因是db内容根本不是utf-8。

这些字符看起来像utf-8输出中的无效字符,很可能是ISO-8859-1

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

连接后,通过执行以下查询来修复它。对于mySQL<5.0.7:

mysql_query("SET NAMES utf8;");
对于较新的mySQLs:

mysql_set_charset("utf8"); 

你知道你可以突破
这是一个字符编码问题。确保您的数据库字符集、连接字符集和输出编码匹配。好吧,这比回显JavaScript要好,我同意@Pekka。我打赌你的数据库不是UTF-8。@Pekka:)可以使用html实体吗?这不是我的问题。这只是一个测试-php。如何解决UTF-8的问题这不是他的问题的解决方案。他有一个字符编码问题