我正在尝试使用text / html对象显示来自网站的内容,如下所示:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta charset="UTF-8">
</head>
<object type="text/html" width="735" height="1000"
data="http://www.meteo.physik.uni-muenchen.de/dokuwiki/phpincludes/publicationstest.php?abteilung=alle&rev=ja&ajahr=2006&mim=ja">
<p>you should have seen my other page here, but something broke.</p>
</object>
但是,特殊字符无法正确显示。我可以看到,但不能编辑在服务器端创建输出的php脚本:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"; charset=charset=ISO-8859-1>
<title>Publikationen</title>
</head>
<body>
<?php
if ($query['rev'] == "alle") {$OK = true;};
...
?>
</p>
</body>
</html>
是否可以正确显示特殊字符?
答案 0 :(得分:0)
公然的mojibake范例。
original data来自下一个程序
所有数据都在UTF-8
进行了编码,另请参见显式HTML元属性charset=utf-8
。
但是,这些数据发生在嵌入式 HTML文档 bogusly 和看似归因于charset=ISO-8859-1
的下一个场景之后({{3 }}):
<!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="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
</head>
<body>
...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"; charset=charset=ISO-8859-1>
<title>Publikationen</title>
</head>
<body>
...
... UTF-8 encoded data bogusly attributed `charset=ISO-8859-1`
...
</body>
</html>
...
</body>
</html>
另一方面,您正在显示从原始网站中提取的部分内容(invalid HTML markup code)。不幸的是,在其内容中有一些UTF-8
个字符(请参阅评论中的示例数据)误解如下:
char encoding code name
ü UTF-8 0xC3 0xBC LATIN SMALL LETTER U WITH DIAERESIS
à ISO-8859-1 0xC3 latin capital letter a with tilde
¼ ISO-8859-1 0xBC vulgar fraction one quarter
ä UTF-8 0xC3 0xA4 LATIN SMALL LETTER A WITH DIAERESIS
à ISO-8859-1 0xC3 latin capital letter a with tilde
¤ ISO-8859-1 0xA4 currency sign
由于charset=UTF-8
编码数据被charset=ISO-8859-1
解释。