<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Charsets and submitting forms</title>
</head>
<body>
<form action="?" name=f>
 <input type=hidden name=q value="&#1105;&#66560;&#119083;çc"><br>
</form>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

if (document.URL.substring(0, 4) == "file") {

    if (document.URL.indexOf('?') == -1) {
        document.f.q.value += "\u0327"; // cedilla for 'c'
        document.f.submit();

    } else {
        if (unescape(document.URL.substring(document.URL.indexOf('?')+1, document.URL.length)) == unescape("q=%D1%91%F0%90%90%80%F0%9D%84%AB%C3%A7%C3%A7"))
            document.write("<p>Success</p>");
        else
            document.write("<p>Failure</p>");
        
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }

} else {

    document.write("<p>This test doesn't work directly from bugzilla, please save it to a local file first.</p>");
}
</script>
</body>
</html>