A set of dependency-free basic internationalization tools
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

70 lines
2.3 KiB

<!DOCTYPE html>
<meta charset=utf-8>
<script>
var sampleStrings = {
// control samples
'empty string': "",
'sanity check': "61 62 63 31 32 33",
'multibyte control': "E5 8F A4 E6 B1 A0 E3 82 84 E8 9B 99 E9 A3 9B E3 81 B3 E8 BE BC E3 82 80 E6 B0 B4 E3 81 AE E9 9F B3",
'mixed sample': "7A C2 A2 E6 B0 B4 F0 9D 84 9E EF A3 BF F4 8F BF BD EF BF BE",
// various invalid sequences
'invalid code': "FF",
'ends early': "C0",
'ends early 2': "E0",
'invalid trail': "C0 00",
'invalid trail 2': "C0 C0",
'invalid trail 3': "E0 00",
'invalid trail 4': "E0 C0",
'invalid trail 5': "E0 80 00",
'invalid trail 6': "E0 80 C0",
'> 0x10FFFF': "FC 80 80 80 80 80",
'obsolete lead byte': "FE 80 80 80 80 80",
'overlong U+0000 - 2 bytes': "C0 80",
'overlong U+0000 - 3 bytes': "E0 80 80",
'overlong U+0000 - 4 bytes': "F0 80 80 80",
'overlong U+0000 - 5 bytes': "F8 80 80 80 80",
'overlong U+0000 - 6 bytes': "FC 80 80 80 80 80",
'overlong U+007F - 2 bytes': "C1 BF",
'overlong U+007F - 3 bytes': "E0 81 BF",
'overlong U+007F - 4 bytes': "F0 80 81 BF",
'overlong U+007F - 5 bytes': "F8 80 80 81 BF",
'overlong U+007F - 6 bytes': "FC 80 80 80 81 BF",
'overlong U+07FF - 3 bytes': "E0 9F BF",
'overlong U+07FF - 4 bytes': "F0 80 9F BF",
'overlong U+07FF - 5 bytes': "F8 80 80 9F BF",
'overlong U+07FF - 6 bytes': "FC 80 80 80 9F BF",
'overlong U+FFFF - 4 bytes': "F0 8F BF BF",
'overlong U+FFFF - 5 bytes': "F8 80 8F BF BF",
'overlong U+FFFF - 6 bytes': "FC 80 80 8F BF BF",
'overlong U+10FFFF - 5 bytes': "F8 84 8F BF BF",
'overlong U+10FFFF - 6 bytes': "FC 80 84 8F BF BF",
// UTF-16 surrogates
'lead surrogate': "ED A0 80",
'trail surrogate': "ED B0 80",
'surrogate pair': "ED A0 80 ED B0 80",
// self-sync edge cases
'trailing continuation': "0A 80 80",
'trailing continuation 2': "E5 8F A4 80",
};
var sampleCharacters = {
'U+007A': 0x007A,
'U+00A2': 0x00A2,
'U+6C34': 0x6C34,
'U+1D11E': 0x1D11E,
'U+F8FF': 0xF8FF,
'U+10FFFD': 0x10FFFD,
'U+FFFE': 0xFFFE,
'-1': -1,
'0x110000': 0x110000,
};
var seekCodePoints = [
0x007A,
0x00A2,
0x6C34,
0x1D11E,
0xF8FF,
0x10FFFD,
0xFFFE,
];
</script>
<script src="test.js"></script>