<?php 
// authors should fill in these assignments:
$directory = 'questions/'; // the directory path below /International up to but not including the file name: must end in a slash! 
$filename = 'qa-utf8-bom'; // the file name WITHOUT extensions
$topicIndex[] = 'characters'; // anchor of appropriate place in /International/articlelist
$techIndex[] = 'authoring-html#charset'; // path after /International/techniques/ to the appropriate place in a techniques page
$authors = 'Deborah Cawkwell, BBC World Service'; // author(s) and affiliations
$modifiers = 'Richard Ishida, W3C'; // people making substantive changes, and their affiliation
$searchString = 'qa-utf8-bom'; // blog search string - usually the filename without extensions
$firstPubDate = '2003-11-27'; // date of the first publication of the document (after review)
$lastSubstUpdate = '2007-07-17 18:19';  // date of last substantive changes to this document
$pathtophp = '../php'; // authors should check that the following points to /International/php - must be relative path

// authors AND translators should fill in these assignments:
$clang = 'de'; // the language extension for articles in this language (use 'en' for English)
$isTranslation = 'yes';  // set to 'yes' if this is a translation !
$copyrightYear = '2003-2007'; // this year, but may also be a range, eg. 2002-2006
$thisVersion = '2009-05-28'; // date of latest edits to this document/translation

// translators should fill in these assignments:
$translators = '<a href="http://bittersmann.de/">Gunnar Bittersmann</a> mit <a href="http://julianewuensche.de/">Juliane Wünsche</a>'; // translator(s) and their affiliation - a elements allowed, but use double quotes for attributes
$enVersion = '2007-07-17';  // date of the English original on which the translation is based (see last substantive change date at bottom of file)

$additionalLinks = '';
include($pathtophp.'/bp2/structure.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="<?php echo $clang;?>" xml:lang="<?php echo $clang;?>" xmlns="http://www.w3.org/1999/xhtml">
<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>W3C I18n FAQ: Darstellungsprobleme durch das UTF-8-BOM</title>
		<meta name="keywords"
		 content="i18n Internationalisierung localisation Lokalisierung Übersetzung UTF-8 BOM <span lang="en" xml:lang="en">byte order mark</span> unerwünschte Zeichen Leerzeile ï»¿" />
		<meta name="keywords" lang="en" xml:lang="en"
		 content="i18n internationalisation internationalization localisation localization translation utf-8 BOM <span lang="en" xml:lang="en">byte order mark</span> unexpected characters blank lines ï»¿" />
		<meta name="description"
		 content="W3C I18N FAQ: Bei UTF-8-codierten Seiten werden in einigen Browsern eine Leerzeile oder unerwünschte Zeichen am Seitenanfang bzw. am Anfang einer eingefügten Datei dargestellt. Wie lassen sich diese entfernen?" />
<?php echo $headincludes;?>
<style type="text/css" media="all">
</style>
</head>

	<body bgcolor="white">
		<span id="version-info" style="display: none;"><!-- #BeginDate format:IS1m -->2009-03-05  13:02<!-- #EndDate --></span> <?php echo $topOfPage; ?>

		<h1>Darstellungsprobleme durch das UTF-8-BOM</h1>
		<div id="navigation"> 
			<p><?php echo $onthispage?><?php echo $questionLink?>&nbsp;- <?php echo $backgroundLink?>&nbsp;- <?php echo $answerLink?>&nbsp;- <?php echo $btwLink?>&nbsp;-
				<?php echo $readingLink?></p>
		</div>
		<div class="section"><a id="contentstart" name="contentstart" tabindex="1"></a> 
			<div id="audience"> 
				<p><?php echo $intendedAudience?> XHTML/HTML-Autoren (die Web-Editoren/Texteditoren oder Scripte benutzen), Script-Entwickler (PHP, JSP, etc.), CSS-Entwickler, XSLT-Entwickler, Webprojekt-Manager und alle, die herausfinden möchten, warum Leerzeilen oder unerwünschte Zeichen auf ihrer UTF-8-codierten Seite erscheinen. </p>
			</div>

			<h2><?php echo $questionHead?></h2>
			<div class="section2"> 
				<p class="question">Bei UTF-8-codierten Seiten werden in einigen Browsern eine Leerzeile oder unerwünschte Zeichen am Seitenanfang bzw. am Anfang einer eingefügten Datei dargestellt. Wie lassen sich diese entfernen?</p>
			</div>
		</div>
		<div class="section"> 

			<h2><?php echo $answerHead?></h2>
			<p>Wird eine Datei in UTF-8 codiert, dann kann die UTF-8-Signatur (<span lang="en" xml:lang="en">Byte Order Mark</span>, BOM) Darstellungsprobleme hervorrufen, wenn das Nutzerprogramm (Browser) diese nicht erkennt.</p>
			<p>Das BOM befindet sich ganz am Anfang einer Datei, deshalb sind solche Darstellungsprobleme am Seitenanfang zu erwarten. Es können aber auch Leerzeilen innerhalb einer Seite auftreten, wenn Text aus einer anderen Datei eingefügt wird, die mit einem BOM beginnt.</p>
			<p>Wir haben eine Reihe von <a href="http://www.w3.org/International/tests/sec-utf8-signature-0">Testseiten</a> und eine <a href="http://www.w3.org/International/tests/results/results-utf8-signature">Zusammenfassung der Ergebnisse</a> für verschiedene Browser erstellt, die dieses Verhalten erklären.</p>
			<p>Dieser Artikel soll Ihnen helfen zu erkennen, ob UTF-8 Ursache des Problems ist. Wenn kein BOM am Dateianfang vorhanden ist, muss woanders nach der Lösung gesucht werden.</p>
			<div class="section2"> 

				<h3><a id="bom" name="bom" href="#bom">Was ist die UTF-8-Signatur (BOM)?</a></h3>
				<div class="sidenoteGroup"> 
					<p>Einige Anwendungen fügen am Anfang einer Datei eine spezielle Folge von Bytes ein um anzuzeigen, dass es sich bei dem Text in der Datei um Unicode handelt. Diese Bytefolge wird <strong>Signatur</strong> oder <strong><span lang="en" xml:lang="en">Byte Order Mark</span> (BOM)</strong> genannt. Einige Progamme (z.B. Texteditoren oder Browser) stellen das BOM als Leerzeile dar, andere stellen unerwartete Zeichen dar (ï»¿).</p>
					<p>Weitere Informationen zum BOM finden Sie in der Randbemerkung.</p>
					<div class="sidenote"> 
						<p>Das BOM ist der Unicode-Zeichencode U+FEFF, der dem Zeichen ZERO WIDTH NO-BREAK SPACE entspricht. (Anmerkung des Übersetzers: Inzwischen dient das Zeichen U+FEFF ausschließlich als BOM. Es sollte nicht mehr als nullbreites geschütztes Leerzeichen verwendet werden; diesen Zweck erfüllt das Zeichen U+2060 WORD JOINER.)</p>
						<p>Bei den Zeichencodierungen UTF-16 und UTF-32 ist das BOM erforderlich, damit der Dateiinhalt korrekt interpretiert werden kann (wenn nicht ein anderer Indikator für die Bytereihenfolge vorhanden ist). Jedes Zeichen wird durch 2 bzw. 4 Bytes repräsentiert, wobei deren Reihenfolge wichtig ist. Das BOM gibt diese Reihenfolge an.</p>
						<p>Bei UTF-8 ist im Gegensatz dazu kein BOM erforderlich, denn dort gibt es nur eine mögliche Reihenfolge der Bytes. Das BOM kann dennoch in UTF-8-codiertem Text auftreten, entweder als Nebenprodukt einer Umwandlung der Zeichencodierung oder weil es durch ein Editorprogramm hinzugefügt wurde.</p>
					</div>
				</div>
			</div>
			<div class="section2"> 

				<h3><a id="detect" name="detect" href="#detect">Das BOM erkennen</a></h3>
				<p>Zunächst ist zu prüfen, ob tatsächlich ein BOM am Dateianfang vorhanden ist.</p>
				<p>Sie können versuchen, das BOM im Dateiinhalt zu erkennen, doch wenn Ihr Editor das BOM richtig behandelt, wird es nicht zu sehen sein. Ein Editor, der das BOM nicht richtig behandelt, zeigt die Zeichen an, die den Bytes in der eingestellten Zeichencodierung entsprechen. (Bei Latin-1 (ISO 8859-1) sind dies die Zeichen ï»¿.) Ein Hex-Editor, der die einzelnen Bytewerte anzeigt, zeigt das BOM als EF BB BF.</p>
				<p>Möglicherweise zeigt Ihr Editor in der Statuszeile oder einem Menü, welche Zeichencodierung verwendet wird und ob ein BOM vorhanden ist oder nicht.</p>
				<p>Andernfalls könnte ein Test-Script (siehe unten) hilfreich sein. Alternativ können Sie diesen <a href="http://people.w3.org/rishida/utils/bomtester/">webbasierten Test</a> probieren. (Wenn Sie das Problem in einer per PHP o.a. Mechanismus eingefügten Datei vermuten, geben Sie den URI der <em>eingefügten</em> Datei an.)</p>
			</div>
			<div class="section2"> 

				<h3><a id="remove" name="remove" href="#remove">Das BOM entfernen</a></h3>
				<p>In einem Editor, der das BOM als unerwünschte Zeichen darstellt, können Sie diese löschen. Wahrscheinlicher ist aber, dass ein vorhandenes BOM gar nicht zu sehen ist.</p>
				<p>Überprüfen Sie, ob Ihr Editor ermöglicht einzustellen, ob <a href="http://www.w3.org/International/questions/qa-setting-encoding-in-applications">beim Speichern</a> ein BOM hinzugefügt wird bzw. erhalten bleibt. Solch ein Editor erlaubt es Ihnen, auf einfache Weise das BOM zu entfernen: die Datei einlesen und wieder speichern. Wenn z.B. Dreamweaver ein BOM erkennt, dann ist in der Dialogbox „Speichern unter“ eine Checkbox „Unicode-Signatur (BOM) einschließen“. Dort einfach das Häkchen entfernen und speichern.</p>
				<p>Ein Script bietet u.a. den Vorteil, dass es das BOM schnell entfernen kann – auch in mehreren Dateien. Solch ein Script könnte automatisch als Teil des Arbeitsprozesses laufen. Wenn Sie Perl verwenden, können Sie <a href="http://people.w3.org/rishida/blog/?p=102">dieses einfache Script</a> von Martin Dürst nutzen.</p>
				<p>Anmerkung: Überprüfen Sie, welchen Einfluss die Entfernung des BOM hat. Es könnte sein, dass irgendein Teil in ihrem Arbeitsprozess das BOM benötigt um zu erkennen, dass eine Datei UTF-8-codiert ist. Beachten Sie auch, dass Seiten mit einem hohen Anteil an lateinischen Buchstaben auf den ersten Blick korrekt aussehen, aber vereinzelte Nicht-ASCII-Zeichen (außerhalb des Bereichs U+0000 bis U+007F) nicht korrekt codiert sein könnten.</p>
			</div>
		</div>
		<div class="section"> 

			<h2><?php echo $btwHead?></h2>
			<p>Einige Texteditoren wie bspw. Windows Notepad fügen immer ein BOM ein, wenn eine Datei UTF-8-codiert gespeichert wird.</p>
			<p>Ein BOM am Anfang einer CSS-Datei kann in einigen Browsern dazu führen, dass die erste Regel ignoriert wird.</p>
			<p>Wenn ein BOM vorhanden ist, interpretieren manche Browser den Text als UTF-8-codiert, auch wenn eine andere Zeichencodierung angegeben ist.</p>
		</div>
<?php echo $survey;?>
		<div class="section noprint"> 

			<h2><?php echo $readingHead?></h2>
			<ul id="full-links">
				<li> 
					<p><a href="http://www.unicode.org/unicode/faq/utf_bom.html">Unicode-FAQ zum BOM</a> <span class="uri">http://www.unicode.org/unicode/faq/utf_bom.html</span></p>
				</li>
				<li> 
					<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_42jv.asp">Microsoft-Dokumentation zum BOM</a> <span class="uri">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_42jv.asp</span></p>
				</li>
				<li> 
					<p><a href="/International/questions/qa-setting-encoding-in-applications">Einstellung der Zeichencodierung in Webeditoren und Texteditoren</a> <span class="uri">http://www.w3.org/International/questions/qa-setting-encoding-in-applications</span></p>
				</li>
				<li> 
					<p><a href="/International/tests/sec-utf8-signature-0">Testseite für UTF-8-BOM-Effekte</a> <span class="uri">http://www.w3.org/International/tests/sec-utf8-signature-0</span></p>
				</li>
			</ul>
		</div>
<?php echo $bottomOfPage; ?>

	</body>
</html>

