PhP中的UTF-8问题
嘿 我对使用umlauts的php输出有问题。 我的代码: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\"> &
<?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的问题这不是他的问题的解决方案。他有一个字符编码问题