gbk-encoder.html (2896B)
1 <!doctype html> 2 <meta charset=gbk> <!-- if the server overrides this, it is stupid, as this is a testsuite --> 3 <script src=/resources/testharness.js></script> 4 <script src=/resources/testharnessreport.js></script> 5 <script> 6 function encode(input, output, desc) { 7 test(function() { 8 const a = document.createElement("a") // <a> uses document encoding for URL's query 9 a.href = "https://example.com/?" + input; 10 assert_equals(a.search.substr(1), output); // remove leading "?" 11 }, "gbk encoder: " + desc); 12 } 13 14 encode("s", "s", "very basic"); 15 encode("\u20AC", "%80", "Euro"); 16 encode("\u4E02", "%81@", "character"); 17 encode("\uE4C6", "%A1@", "PUA"); 18 encode("\uE4C5", "%FE%FE", "PUA #2"); 19 encode("\ud83d\udca9", "%26%23128169%3B", "poo"); 20 encode("\uE7C8", "%26%2359336%3B", "legacy ICU special case 1"); 21 encode("\u2026", "%A1%AD", "legacy ICU special case 2"); 22 encode("\uFF5E", "%A1%AB", "legacy ICU special case 3"); 23 encode("\u00A5", "%26%23165%3B", "legacy WebKit case 1"); 24 encode("\u22EF", "%26%238943%3B", "legacy WebKit case 2"); 25 encode("\u301C", "%26%2312316%3B", "legacy WebKit case 3"); 26 encode("\u{10FFFF}", "%26%231114111%3B", "U+10FFFF"); 27 28 // GB18030-2022 29 encode("\uFE10", "%A6%D9", "GB18030-2022 1"); 30 encode("\uFE12", "%A6%DA", "GB18030-2022 2"); 31 encode("\uFE11", "%A6%DB", "GB18030-2022 3"); 32 encode("\uFE13", "%A6%DC", "GB18030-2022 4"); 33 encode("\uFE14", "%A6%DD", "GB18030-2022 5"); 34 encode("\uFE15", "%A6%DE", "GB18030-2022 6"); 35 encode("\uFE16", "%A6%DF", "GB18030-2022 7"); 36 encode("\uFE17", "%A6%EC", "GB18030-2022 8"); 37 encode("\uFE18", "%A6%ED", "GB18030-2022 9"); 38 encode("\uFE19", "%A6%F3", "GB18030-2022 10"); 39 encode("\u9FB4", "%FEY", "GB18030-2022 11"); 40 encode("\u9FB5", "%FEa", "GB18030-2022 12"); 41 encode("\u9FB6", "%FEf", "GB18030-2022 13"); 42 encode("\u9FB7", "%FEg", "GB18030-2022 14"); 43 encode("\u9FB8", "%FEm", "GB18030-2022 15"); 44 encode("\u9FB9", "%FE~", "GB18030-2022 16"); 45 encode("\u9FBA", "%FE%90", "GB18030-2022 17"); 46 encode("\u9FBB", "%FE%A0", "GB18030-2022 18"); 47 encode("\uE78D", "%A6%D9", "GB18030-2022 19"); 48 encode("\uE78E", "%A6%DA", "GB18030-2022 20"); 49 encode("\uE78F", "%A6%DB", "GB18030-2022 21"); 50 encode("\uE790", "%A6%DC", "GB18030-2022 22"); 51 encode("\uE791", "%A6%DD", "GB18030-2022 23"); 52 encode("\uE792", "%A6%DE", "GB18030-2022 24"); 53 encode("\uE793", "%A6%DF", "GB18030-2022 25"); 54 encode("\uE794", "%A6%EC", "GB18030-2022 26"); 55 encode("\uE795", "%A6%ED", "GB18030-2022 27"); 56 encode("\uE796", "%A6%F3", "GB18030-2022 28"); 57 encode("\uE81E", "%FEY", "GB18030-2022 29"); 58 encode("\uE826", "%FEa", "GB18030-2022 30"); 59 encode("\uE82B", "%FEf", "GB18030-2022 31"); 60 encode("\uE82C", "%FEg", "GB18030-2022 32"); 61 encode("\uE832", "%FEm", "GB18030-2022 33"); 62 encode("\uE843", "%FE~", "GB18030-2022 34"); 63 encode("\uE854", "%FE%90", "GB18030-2022 35"); 64 encode("\uE864", "%FE%A0", "GB18030-2022 36"); 65 </script>