blob: f0b699792eb6f2dd4043de72bc029248a63e9f14 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" >
<title>HTTP vs UTF-8 BOM</title>
<link rel='author' title='Richard Ishida' href=''>
<link rel='help' href=''>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta name='flags' content='http'>
<style type='text/css'>
.test div { width: 50px; }</style>
<link rel="stylesheet" type="text/css" href="support/encodingtests-utf8.css">
<div class='test'><div id='box' class='ýäè'>&#xA0;</div></div>
The HTTP header attempts to set the character encoding to ISO 8859-15. The page starts with a UTF-8 signature.
The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.&#x00FD;&#x00E4;&#x00E8;</code>. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.
If the test is unsuccessful, the characters &#x00EF;&#x00BB;&#x00BF; should appear at the top of the page. These represent the bytes that make up the UTF-8 signature when encountered in the ISO 8859-15 encoding.
test(function() {
assert_equals(document.getElementById('box').offsetWidth, 100);
}, "A character encoding set in the HTTP header has lower precedence than the UTF-8 signature.");
<div id='log'></div>