Name | Status | Input | Expected | Got |
[PHP] overlong encoding byte C0 |
pass |
hello[C0]world |
helloworld |
helloworld |
[PHP] overlong encoding byte C1 |
pass |
hello[C1]world |
helloworld |
helloworld |
[PHP] start of 4 byte code point over U+10FFFF |
pass |
hello[F5]world |
helloworld |
helloworld |
[PHP] start of 4 byte code point over U+10FFFF |
pass |
hello[F6]world |
helloworld |
helloworld |
[PHP] start of 4 byte code point over U+10FFFF |
pass |
hello[F7]world |
helloworld |
helloworld |
[PHP] start of deprecated 5 byte sequence |
pass |
hello[F8]world |
helloworld |
helloworld |
[PHP] start of deprecated 5 byte sequence |
pass |
hello[F9]world |
helloworld |
helloworld |
[PHP] start of deprecated 5 byte sequence |
pass |
hello[FA]world |
helloworld |
helloworld |
[PHP] start of deprecated 5 byte sequence |
pass |
hello[FB]world |
helloworld |
helloworld |
[PHP] start of deprecated 6 byte sequence |
pass |
hello[FC]world |
helloworld |
helloworld |
[PHP] start of deprecated 6 byte sequence |
pass |
hello[FD]world |
helloworld |
helloworld |
[PHP] invalid byte FE |
pass |
hello[FE]world |
helloworld |
helloworld |
[PHP] invalid byte FF |
pass |
hello[FF]world |
helloworld |
helloworld |
[PHP] lone trail |
pass |
a[BF]b |
ab |
ab |
[PHP] 2 lone trails |
pass |
a[BF][BF]b |
ab |
ab |
[PHP] 3 lone trails |
pass |
a[BF][BF][BF]b |
ab |
ab |
[PHP] 0 leader w/ 0 trail |
pass |
aAb |
aAb |
aAb |
[PHP] 0 leader w/ 1 trail |
pass |
aA[BF]b |
aAb |
aAb |
[PHP] 0 leader w/ 2 trail |
pass |
aA[BF][BF]b |
aAb |
aAb |
[PHP] 1 leader w/ 0 trail |
pass |
a[C2]b |
ab |
ab |
[PHP] 1 leader w/ 1 trail |
pass |
a[C2][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[PHP] 1 leader w/ 2 trail |
pass |
a[C2][BF][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[PHP] 2 leader w/ 0 trail |
pass |
a[E1]b |
ab |
ab |
[PHP] 2 leader w/ 1 trail |
pass |
a[E1][80]b |
ab |
ab |
[PHP] 2 leader w/ 2 trail |
pass |
a[E1][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] 2 leader w/ 3 trail |
pass |
a[E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] 3 leader w/ 0 trail |
pass |
a[F0]b |
ab |
ab |
[PHP] 3 leader w/ 1 trail |
pass |
a[F0][A0]b |
ab |
ab |
[PHP] 3 leader w/ 2 trail |
pass |
a[F0][A0][80]b |
ab |
ab |
[PHP] 3 leader w/ 3 trail |
pass |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
[PHP] 3 leader w/ 4 trail |
pass |
a[F0][A0][80][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
[PHP] 2L1 1T |
pass |
a[C2][C2][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[PHP] 2L1 2T |
pass |
a[C2][C2][BF][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[PHP] 2L2 2T |
pass |
a[E1][E1][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] 2L2 3T |
pass |
a[E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] 3L2 3T |
pass |
a[E1][E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] L2 T 2L2 3T |
pass |
a[E1][80][E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[PHP] 2L1 1T at egdes |
pass |
[C2][C2][BF] |
[C2][BF] |
[C2][BF] |
[PHP] 2L1 2T at egdes |
pass |
[C2][C2][BF][BF] |
[C2][BF] |
[C2][BF] |
[PHP] 2L2 2T at egdes |
pass |
[E1][E1][80][80] |
[E1][80][80] |
[E1][80][80] |
[PHP] 2L2 3T at egdes |
pass |
[E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[PHP] 3L2 3T at egdes |
pass |
[E1][E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[PHP] L2 T 2L2 3T at egdes |
pass |
[E1][80][E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[PHP] lowest out of range 4-byte starting with F4 - U+110000 |
pass |
a[F4][90][80][80]b |
ab |
ab |
[PHP] highest out of range 4-byte starting with F4 - U+13FFFF |
pass |
a[F4][BF][BF][BF]b |
ab |
ab |
[PHP] lowest out of range 4-byte starting over F4 - U+140000 |
pass |
a[F5][80][80][80]b |
ab |
ab |
[PHP] highest out of range 4-byte starting over F4 - U+1FFFFF |
pass |
a[F7][BF][BF][BF]b |
ab |
ab |
[PHP] lowest 5-byte U+200000 |
pass |
a[F8][88][80][80][80]b |
ab |
ab |
[PHP] highest 5-byte U+3FFFFFF |
pass |
a[FB][BF][BF][BF][BF]b |
ab |
ab |
[PHP] lowest 6-byte starting with FC - U+4000000 |
pass |
a[FC][84][80][80][80][80]b |
ab |
ab |
[PHP] highest 6-byte starting with FC - U+3FFFFFFF |
pass |
a[FC][BF][BF][BF][BF][BF]b |
ab |
ab |
[PHP] lowest 6-byte starting with FD - U+40000000 |
pass |
a[FD][80][80][80][80][80]b |
ab |
ab |
[PHP] highest 6-byte starting with FD - U+7FFFFFFF |
pass |
a[FD][BF][BF][BF][BF][BF]b |
ab |
ab |
[PHP] lowest overlong 2-byte - U+0000 |
pass |
a[C0][80]b |
ab |
ab |
[PHP] highest overlong 2-byte - U+007F |
pass |
a[C1][BF]b |
ab |
ab |
[PHP] lowest valid 2-byte - U+00A0 |
pass |
a[C2][A0]b |
a[C2][A0]b |
a[C2][A0]b |
[PHP] highest valid 2-byte - U+07FA |
pass |
a[DF][BA]b |
a[DF][BA]b |
a[DF][BA]b |
[PHP] highest possible 2-byte (no strip) - U+07FF |
pass |
a[DF][BF]b |
a[DF][BF]b |
a[DF][BF]b |
[PHP] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]b |
[PHP] lowest overlong 3-byte - U+0000 |
pass |
a[E0][80][80]b |
ab |
ab |
[PHP] highest overlong 3-byte - U+07FF |
pass |
a[E0][9F][BF]b |
ab |
ab |
[PHP] lowest valid 3-byte - U+0800 |
pass |
a[E0][A0][80]b |
a[E0][A0][80]b |
a[E0][A0][80]b |
[PHP] highest valid 3-byte - U+FFFB |
pass |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
[PHP] lowest overlong 4-byte - U+0000 |
pass |
a[F0][80][80][80]b |
ab |
ab |
[PHP] highest overlong 4-byte - U+FFFB |
pass |
a[F0][8F][BF][BB]b |
ab |
ab |
[PHP] lowest valid 4-byte - U+10000 |
pass |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
[PHP] highest valid 4-byte - U+10FFFD |
pass |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
[PHP] lowest overlong 5-byte - U+0000 |
pass |
a[F8][80][80][80][80]b |
ab |
ab |
[PHP] highest overlong 5-byte - U+1FFFFD |
pass |
a[F8][87][BF][BF][BD]b |
ab |
ab |
[PHP] lowest overlong 6-byte - U+0000 |
pass |
a[FC][80][80][80][80][80]b |
ab |
ab |
[PHP] highest overlong 6-byte - U+3FFFFFF |
pass |
a[FC][83][BF][BF][BF][BF]b |
ab |
ab |
[PHP] Latin-1 fallback 0x76 |
pass |
v |
v |
v |
[PHP] Latin-1 fallback 0xEB |
pass |
[EB] |
[C3][AB] |
[C3][AB] |
[PHP] Latin-1 fallback word |
pass |
H[EB]llo |
H[C3][AB]llo |
H[C3][AB]llo |
[PHP] Unknown sanitize mode exception |
pass |
sanitize("hello\xC0world", "str"); |
thrown |
thrown |
[PHP] ISO-8859-1 0x76 -> U+0076 |
pass |
v |
v |
v |
[PHP] ISO-8859-1 0xE6 -> U+00E6 |
pass |
[E6] |
[C3][A6] |
[C3][A6] |
[mbstring] overlong encoding byte C0 |
pass |
hello[C0]world |
helloworld |
helloworld |
[mbstring] overlong encoding byte C1 |
pass |
hello[C1]world |
helloworld |
helloworld |
[mbstring] start of 4 byte code point over U+10FFFF |
pass |
hello[F5]world |
helloworld |
helloworld |
[mbstring] start of 4 byte code point over U+10FFFF |
pass |
hello[F6]world |
helloworld |
helloworld |
[mbstring] start of 4 byte code point over U+10FFFF |
pass |
hello[F7]world |
helloworld |
helloworld |
[mbstring] start of deprecated 5 byte sequence |
pass |
hello[F8]world |
helloworld |
helloworld |
[mbstring] start of deprecated 5 byte sequence |
pass |
hello[F9]world |
helloworld |
helloworld |
[mbstring] start of deprecated 5 byte sequence |
pass |
hello[FA]world |
helloworld |
helloworld |
[mbstring] start of deprecated 5 byte sequence |
pass |
hello[FB]world |
helloworld |
helloworld |
[mbstring] start of deprecated 6 byte sequence |
pass |
hello[FC]world |
helloworld |
helloworld |
[mbstring] start of deprecated 6 byte sequence |
pass |
hello[FD]world |
helloworld |
helloworld |
[mbstring] invalid byte FE |
pass |
hello[FE]world |
helloworld |
helloworld |
[mbstring] invalid byte FF |
pass |
hello[FF]world |
helloworld |
helloworld |
[mbstring] lone trail |
fail |
a[BF]b |
ab |
aBAD+BFb |
[mbstring] 2 lone trails |
fail |
a[BF][BF]b |
ab |
aBAD+BFBAD+BFb |
[mbstring] 3 lone trails |
fail |
a[BF][BF][BF]b |
ab |
aBAD+BFBAD+BFBAD+BFb |
[mbstring] 0 leader w/ 0 trail |
pass |
aAb |
aAb |
aAb |
[mbstring] 0 leader w/ 1 trail |
fail |
aA[BF]b |
aAb |
aABAD+BFb |
[mbstring] 0 leader w/ 2 trail |
fail |
aA[BF][BF]b |
aAb |
aABAD+BFBAD+BFb |
[mbstring] 1 leader w/ 0 trail |
fail |
a[C2]b |
ab |
aBAD+2b |
[mbstring] 1 leader w/ 1 trail |
pass |
a[C2][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[mbstring] 1 leader w/ 2 trail |
fail |
a[C2][BF][BF]b |
a[C2][BF]b |
a[C2][BF]BAD+BFb |
[mbstring] 2 leader w/ 0 trail |
fail |
a[E1]b |
ab |
aBAD+1b |
[mbstring] 2 leader w/ 1 trail |
fail |
a[E1][80]b |
ab |
aBAD+40b |
[mbstring] 2 leader w/ 2 trail |
pass |
a[E1][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[mbstring] 2 leader w/ 3 trail |
fail |
a[E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]BAD+80b |
[mbstring] 3 leader w/ 0 trail |
fail |
a[F0]b |
ab |
aBAD+0b |
[mbstring] 3 leader w/ 1 trail |
fail |
a[F0][A0]b |
ab |
aBAD+20b |
[mbstring] 3 leader w/ 2 trail |
fail |
a[F0][A0][80]b |
ab |
aBAD+800b |
[mbstring] 3 leader w/ 3 trail |
pass |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
[mbstring] 3 leader w/ 4 trail |
fail |
a[F0][A0][80][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]BAD+80b |
[mbstring] 2L1 1T |
fail |
a[C2][C2][BF]b |
a[C2][BF]b |
aBAD+2[C2][BF]b |
[mbstring] 2L1 2T |
fail |
a[C2][C2][BF][BF]b |
a[C2][BF]b |
aBAD+2[C2][BF]BAD+BFb |
[mbstring] 2L2 2T |
fail |
a[E1][E1][80][80]b |
a[E1][80][80]b |
aBAD+1[E1][80][80]b |
[mbstring] 2L2 3T |
fail |
a[E1][E1][80][80][80]b |
a[E1][80][80]b |
aBAD+1[E1][80][80]BAD+80b |
[mbstring] 3L2 3T |
fail |
a[E1][E1][E1][80][80][80]b |
a[E1][80][80]b |
aBAD+1BAD+1[E1][80][80]BAD+80b |
[mbstring] L2 T 2L2 3T |
fail |
a[E1][80][E1][E1][80][80][80]b |
a[E1][80][80]b |
aBAD+40BAD+1[E1][80][80]BAD+80b |
[mbstring] 2L1 1T at egdes |
fail |
[C2][C2][BF] |
[C2][BF] |
BAD+2[C2][BF] |
[mbstring] 2L1 2T at egdes |
fail |
[C2][C2][BF][BF] |
[C2][BF] |
BAD+2[C2][BF]BAD+BF |
[mbstring] 2L2 2T at egdes |
fail |
[E1][E1][80][80] |
[E1][80][80] |
BAD+1[E1][80][80] |
[mbstring] 2L2 3T at egdes |
fail |
[E1][E1][80][80][80] |
[E1][80][80] |
BAD+1[E1][80][80]BAD+80 |
[mbstring] 3L2 3T at egdes |
fail |
[E1][E1][E1][80][80][80] |
[E1][80][80] |
BAD+1BAD+1[E1][80][80]BAD+80 |
[mbstring] L2 T 2L2 3T at egdes |
fail |
[E1][80][E1][E1][80][80][80] |
[E1][80][80] |
BAD+40BAD+1[E1][80][80]BAD+80 |
[mbstring] lowest out of range 4-byte starting with F4 - U+110000 |
fail |
a[F4][90][80][80]b |
ab |
aBAD+4BAD+90BAD+80BAD+80b |
[mbstring] highest out of range 4-byte starting with F4 - U+13FFFF |
fail |
a[F4][BF][BF][BF]b |
ab |
aBAD+4BAD+BFBAD+BFBAD+BFb |
[mbstring] lowest out of range 4-byte starting over F4 - U+140000 |
fail |
a[F5][80][80][80]b |
ab |
aBAD+80BAD+80BAD+80b |
[mbstring] highest out of range 4-byte starting over F4 - U+1FFFFF |
fail |
a[F7][BF][BF][BF]b |
ab |
aBAD+BFBAD+BFBAD+BFb |
[mbstring] lowest 5-byte U+200000 |
fail |
a[F8][88][80][80][80]b |
ab |
aBAD+88BAD+80BAD+80BAD+80b |
[mbstring] highest 5-byte U+3FFFFFF |
fail |
a[FB][BF][BF][BF][BF]b |
ab |
aBAD+BFBAD+BFBAD+BFBAD+BFb |
[mbstring] lowest 6-byte starting with FC - U+4000000 |
fail |
a[FC][84][80][80][80][80]b |
ab |
aBAD+84BAD+80BAD+80BAD+80BAD+80b |
[mbstring] highest 6-byte starting with FC - U+3FFFFFFF |
fail |
a[FC][BF][BF][BF][BF][BF]b |
ab |
aBAD+BFBAD+BFBAD+BFBAD+BFBAD+BFb |
[mbstring] lowest 6-byte starting with FD - U+40000000 |
fail |
a[FD][80][80][80][80][80]b |
ab |
aBAD+80BAD+80BAD+80BAD+80BAD+80b |
[mbstring] highest 6-byte starting with FD - U+7FFFFFFF |
fail |
a[FD][BF][BF][BF][BF][BF]b |
ab |
aBAD+BFBAD+BFBAD+BFBAD+BFBAD+BFb |
[mbstring] lowest overlong 2-byte - U+0000 |
fail |
a[C0][80]b |
ab |
aBAD+80b |
[mbstring] highest overlong 2-byte - U+007F |
fail |
a[C1][BF]b |
ab |
aBAD+BFb |
[mbstring] lowest valid 2-byte - U+00A0 |
pass |
a[C2][A0]b |
a[C2][A0]b |
a[C2][A0]b |
[mbstring] highest valid 2-byte - U+07FA |
pass |
a[DF][BA]b |
a[DF][BA]b |
a[DF][BA]b |
[mbstring] highest possible 2-byte (no strip) - U+07FF |
pass |
a[DF][BF]b |
a[DF][BF]b |
a[DF][BF]b |
[mbstring] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]b |
[mbstring] lowest overlong 3-byte - U+0000 |
pass |
a[E0][80][80]b |
ab |
ab |
[mbstring] highest overlong 3-byte - U+07FF |
pass |
a[E0][9F][BF]b |
ab |
ab |
[mbstring] lowest valid 3-byte - U+0800 |
pass |
a[E0][A0][80]b |
a[E0][A0][80]b |
a[E0][A0][80]b |
[mbstring] highest valid 3-byte - U+FFFB |
pass |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
[mbstring] lowest overlong 4-byte - U+0000 |
pass |
a[F0][80][80][80]b |
ab |
ab |
[mbstring] highest overlong 4-byte - U+FFFB |
pass |
a[F0][8F][BF][BB]b |
ab |
ab |
[mbstring] lowest valid 4-byte - U+10000 |
pass |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
[mbstring] highest valid 4-byte - U+10FFFD |
pass |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
[mbstring] lowest overlong 5-byte - U+0000 |
fail |
a[F8][80][80][80][80]b |
ab |
aBAD+80BAD+80BAD+80BAD+80b |
[mbstring] highest overlong 5-byte - U+1FFFFD |
fail |
a[F8][87][BF][BF][BD]b |
ab |
aBAD+87BAD+BFBAD+BFBAD+BDb |
[mbstring] lowest overlong 6-byte - U+0000 |
fail |
a[FC][80][80][80][80][80]b |
ab |
aBAD+80BAD+80BAD+80BAD+80BAD+80b |
[mbstring] highest overlong 6-byte - U+3FFFFFF |
fail |
a[FC][83][BF][BF][BF][BF]b |
ab |
aBAD+83BAD+BFBAD+BFBAD+BFBAD+BFb |
[mbstring] Latin-1 fallback 0x76 |
pass |
v |
v |
v |
[mbstring] Latin-1 fallback 0xEB |
pass |
[EB] |
[C3][AB] |
[C3][AB] |
[mbstring] Latin-1 fallback word |
pass |
H[EB]llo |
H[C3][AB]llo |
H[C3][AB]llo |
[mbstring] Unknown sanitize mode exception |
pass |
sanitize("hello\xC0world", "str"); |
thrown |
thrown |
[mbstring] SJIS 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] SJIS 0xA6 -> U+FF66 |
pass |
[A6] |
[EF][BD][A6] |
[EF][BD][A6] |
[mbstring] SJIS 0x8140 -> U+3000 |
pass |
[81]@ |
[E3][80][80] |
[E3][80][80] |
[mbstring] SJIS 0x82DC -> U+307E |
pass |
[82][DC] |
[E3][81][BE] |
[E3][81][BE] |
[mbstring] SJIS 0x8CCC -> U+6545 |
pass |
[8C][CC] |
[E6][95][85] |
[E6][95][85] |
[mbstring] ISO-2022-JP US-ASCII 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] ISO-2022-JP JIS-X-201 0xA6 -> U+FF66 |
pass |
[A6] |
[EF][BD][A6] |
[EF][BD][A6] |
[mbstring] ISO-2022-JP JIS-X-201 0xBE -> U+FF7E |
pass |
[BE] |
[EF][BD][BE] |
[EF][BD][BE] |
[mbstring] ISO-2022-JP JIS-X-208-1978 0x214A -> U+FF08 |
pass |
[1B]$@!J |
[EF][BC][88] |
[EF][BC][88] |
[mbstring] ISO-2022-JP JIS-X-208-1978 0x3C2D -> U+8F9E |
pass |
[1B]$@<- |
[E8][BE][9E] |
[E8][BE][9E] |
[mbstring] ISO-2022-JP JIS-X-208-1983 0x214A -> U+FF08 |
pass |
[1B]$B!J |
[EF][BC][88] |
[EF][BC][88] |
[mbstring] ISO-2022-JP JIS-X-208-1983 0x3C2D -> U+8F9E |
pass |
[1B]$B<- |
[E8][BE][9E] |
[E8][BE][9E] |
[mbstring] EUC-JP US-ASCII 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] EUC-JP JIS-X-201 0xB6 -> U+FF76 |
pass |
[8E][B6] |
[EF][BD][B6] |
[EF][BD][B6] |
[mbstring] EUC-JP JIS-X-201 0xDE -> U+FF9E |
pass |
[8E][DE] |
[EF][BE][9E] |
[EF][BE][9E] |
[mbstring] EUC-JP JIS-X-0208 0x2133 -> U+30FD |
pass |
[A1][B3] |
[E3][83][BD] |
[E3][83][BD] |
[mbstring] EUC-JP JIS-X-0208 0x3053 -> U+5C09 |
pass |
[B0][D3] |
[E5][B0][89] |
[E5][B0][89] |
[mbstring] EUC-JP JIS-X-0212 0x3031 - U+4E44 |
pass |
[8F][B0][B1] |
[E4][B9][84] |
[E4][B9][84] |
[mbstring] EUC-JP JIS-X-0212 0x4258 - U+66A4 |
pass |
[8F][C2][D8] |
[E6][9A][A4] |
[E6][9A][A4] |
[mbstring] ISO-8859-1 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] ISO-8859-1 0xE6 -> U+00E6 |
pass |
[E6] |
[C3][A6] |
[C3][A6] |
[mbstring] ISO-8859-2 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] ISO-8859-2 0xE6 -> U+0107 |
pass |
[E6] |
[C4][87] |
[C4][87] |
[mbstring] ISO-8859-15 0x76 -> U+0076 |
pass |
v |
v |
v |
[mbstring] ISO-8859-15 0xBE -> U+0178 |
pass |
[BE] |
[C5][B8] |
[C5][B8] |
[iconv] overlong encoding byte C0 |
pass |
hello[C0]world |
helloworld |
helloworld |
[iconv] overlong encoding byte C1 |
pass |
hello[C1]world |
helloworld |
helloworld |
[iconv] start of 4 byte code point over U+10FFFF |
pass |
hello[F5]world |
helloworld |
helloworld |
[iconv] start of 4 byte code point over U+10FFFF |
pass |
hello[F6]world |
helloworld |
helloworld |
[iconv] start of 4 byte code point over U+10FFFF |
pass |
hello[F7]world |
helloworld |
helloworld |
[iconv] start of deprecated 5 byte sequence |
pass |
hello[F8]world |
helloworld |
helloworld |
[iconv] start of deprecated 5 byte sequence |
pass |
hello[F9]world |
helloworld |
helloworld |
[iconv] start of deprecated 5 byte sequence |
pass |
hello[FA]world |
helloworld |
helloworld |
[iconv] start of deprecated 5 byte sequence |
pass |
hello[FB]world |
helloworld |
helloworld |
[iconv] start of deprecated 6 byte sequence |
pass |
hello[FC]world |
helloworld |
helloworld |
[iconv] start of deprecated 6 byte sequence |
pass |
hello[FD]world |
helloworld |
helloworld |
[iconv] invalid byte FE |
pass |
hello[FE]world |
helloworld |
helloworld |
[iconv] invalid byte FF |
pass |
hello[FF]world |
helloworld |
helloworld |
[iconv] lone trail |
pass |
a[BF]b |
ab |
ab |
[iconv] 2 lone trails |
pass |
a[BF][BF]b |
ab |
ab |
[iconv] 3 lone trails |
pass |
a[BF][BF][BF]b |
ab |
ab |
[iconv] 0 leader w/ 0 trail |
pass |
aAb |
aAb |
aAb |
[iconv] 0 leader w/ 1 trail |
pass |
aA[BF]b |
aAb |
aAb |
[iconv] 0 leader w/ 2 trail |
pass |
aA[BF][BF]b |
aAb |
aAb |
[iconv] 1 leader w/ 0 trail |
pass |
a[C2]b |
ab |
ab |
[iconv] 1 leader w/ 1 trail |
pass |
a[C2][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[iconv] 1 leader w/ 2 trail |
pass |
a[C2][BF][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[iconv] 2 leader w/ 0 trail |
pass |
a[E1]b |
ab |
ab |
[iconv] 2 leader w/ 1 trail |
pass |
a[E1][80]b |
ab |
ab |
[iconv] 2 leader w/ 2 trail |
pass |
a[E1][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] 2 leader w/ 3 trail |
pass |
a[E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] 3 leader w/ 0 trail |
pass |
a[F0]b |
ab |
ab |
[iconv] 3 leader w/ 1 trail |
pass |
a[F0][A0]b |
ab |
ab |
[iconv] 3 leader w/ 2 trail |
pass |
a[F0][A0][80]b |
ab |
ab |
[iconv] 3 leader w/ 3 trail |
pass |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
[iconv] 3 leader w/ 4 trail |
pass |
a[F0][A0][80][80][80]b |
a[F0][A0][80][80]b |
a[F0][A0][80][80]b |
[iconv] 2L1 1T |
pass |
a[C2][C2][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[iconv] 2L1 2T |
pass |
a[C2][C2][BF][BF]b |
a[C2][BF]b |
a[C2][BF]b |
[iconv] 2L2 2T |
pass |
a[E1][E1][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] 2L2 3T |
pass |
a[E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] 3L2 3T |
pass |
a[E1][E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] L2 T 2L2 3T |
pass |
a[E1][80][E1][E1][80][80][80]b |
a[E1][80][80]b |
a[E1][80][80]b |
[iconv] 2L1 1T at egdes |
pass |
[C2][C2][BF] |
[C2][BF] |
[C2][BF] |
[iconv] 2L1 2T at egdes |
pass |
[C2][C2][BF][BF] |
[C2][BF] |
[C2][BF] |
[iconv] 2L2 2T at egdes |
pass |
[E1][E1][80][80] |
[E1][80][80] |
[E1][80][80] |
[iconv] 2L2 3T at egdes |
pass |
[E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[iconv] 3L2 3T at egdes |
pass |
[E1][E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[iconv] L2 T 2L2 3T at egdes |
pass |
[E1][80][E1][E1][80][80][80] |
[E1][80][80] |
[E1][80][80] |
[iconv] lowest out of range 4-byte starting with F4 - U+110000 |
pass |
a[F4][90][80][80]b |
ab |
ab |
[iconv] highest out of range 4-byte starting with F4 - U+13FFFF |
pass |
a[F4][BF][BF][BF]b |
ab |
ab |
[iconv] lowest out of range 4-byte starting over F4 - U+140000 |
pass |
a[F5][80][80][80]b |
ab |
ab |
[iconv] highest out of range 4-byte starting over F4 - U+1FFFFF |
pass |
a[F7][BF][BF][BF]b |
ab |
ab |
[iconv] lowest 5-byte U+200000 |
pass |
a[F8][88][80][80][80]b |
ab |
ab |
[iconv] highest 5-byte U+3FFFFFF |
pass |
a[FB][BF][BF][BF][BF]b |
ab |
ab |
[iconv] lowest 6-byte starting with FC - U+4000000 |
pass |
a[FC][84][80][80][80][80]b |
ab |
ab |
[iconv] highest 6-byte starting with FC - U+3FFFFFFF |
pass |
a[FC][BF][BF][BF][BF][BF]b |
ab |
ab |
[iconv] lowest 6-byte starting with FD - U+40000000 |
pass |
a[FD][80][80][80][80][80]b |
ab |
ab |
[iconv] highest 6-byte starting with FD - U+7FFFFFFF |
pass |
a[FD][BF][BF][BF][BF][BF]b |
ab |
ab |
[iconv] lowest overlong 2-byte - U+0000 |
pass |
a[C0][80]b |
ab |
ab |
[iconv] highest overlong 2-byte - U+007F |
pass |
a[C1][BF]b |
ab |
ab |
[iconv] lowest valid 2-byte - U+00A0 |
pass |
a[C2][A0]b |
a[C2][A0]b |
a[C2][A0]b |
[iconv] highest valid 2-byte - U+07FA |
pass |
a[DF][BA]b |
a[DF][BA]b |
a[DF][BA]b |
[iconv] highest possible 2-byte (no strip) - U+07FF |
pass |
a[DF][BF]b |
a[DF][BF]b |
a[DF][BF]b |
[iconv] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]b |
[iconv] lowest overlong 3-byte - U+0000 |
pass |
a[E0][80][80]b |
ab |
ab |
[iconv] highest overlong 3-byte - U+07FF |
pass |
a[E0][9F][BF]b |
ab |
ab |
[iconv] lowest valid 3-byte - U+0800 |
pass |
a[E0][A0][80]b |
a[E0][A0][80]b |
a[E0][A0][80]b |
[iconv] highest valid 3-byte - U+FFFB |
pass |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
a[EF][BF][BB]b |
[iconv] lowest overlong 4-byte - U+0000 |
pass |
a[F0][80][80][80]b |
ab |
ab |
[iconv] highest overlong 4-byte - U+FFFB |
pass |
a[F0][8F][BF][BB]b |
ab |
ab |
[iconv] lowest valid 4-byte - U+10000 |
pass |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
a[F0][90][80][80]b |
[iconv] highest valid 4-byte - U+10FFFD |
pass |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
a[F4][8F][BF][BD]b |
[iconv] lowest overlong 5-byte - U+0000 |
pass |
a[F8][80][80][80][80]b |
ab |
ab |
[iconv] highest overlong 5-byte - U+1FFFFD |
pass |
a[F8][87][BF][BF][BD]b |
ab |
ab |
[iconv] lowest overlong 6-byte - U+0000 |
pass |
a[FC][80][80][80][80][80]b |
ab |
ab |
[iconv] highest overlong 6-byte - U+3FFFFFF |
pass |
a[FC][83][BF][BF][BF][BF]b |
ab |
ab |
[iconv] Latin-1 fallback 0x76 |
pass |
v |
v |
v |
[iconv] Latin-1 fallback 0xEB |
pass |
[EB] |
[C3][AB] |
[C3][AB] |
[iconv] Latin-1 fallback word |
pass |
H[EB]llo |
H[C3][AB]llo |
H[C3][AB]llo |
[iconv] Unknown sanitize mode exception |
pass |
sanitize("hello\xC0world", "str"); |
thrown |
thrown |
[iconv] SJIS 0x76 -> U+0076 |
pass |
v |
v |
v |
[iconv] SJIS 0xA6 -> U+FF66 |
pass |
[A6] |
[EF][BD][A6] |
[EF][BD][A6] |
[iconv] SJIS 0x8140 -> U+3000 |
pass |
[81]@ |
[E3][80][80] |
[E3][80][80] |
[iconv] SJIS 0x82DC -> U+307E |
pass |
[82][DC] |
[E3][81][BE] |
[E3][81][BE] |
[iconv] SJIS 0x8CCC -> U+6545 |
pass |
[8C][CC] |
[E6][95][85] |
[E6][95][85] |
[iconv] EUC-JP US-ASCII 0x76 -> U+0076 |
pass |
v |
v |
v |
[iconv] EUC-JP JIS-X-201 0xB6 -> U+FF76 |
pass |
[8E][B6] |
[EF][BD][B6] |
[EF][BD][B6] |
[iconv] EUC-JP JIS-X-201 0xDE -> U+FF9E |
pass |
[8E][DE] |
[EF][BE][9E] |
[EF][BE][9E] |
[iconv] EUC-JP JIS-X-0208 0x2133 -> U+30FD |
pass |
[A1][B3] |
[E3][83][BD] |
[E3][83][BD] |
[iconv] EUC-JP JIS-X-0208 0x3053 -> U+5C09 |
pass |
[B0][D3] |
[E5][B0][89] |
[E5][B0][89] |
[iconv] EUC-JP JIS-X-0212 0x3031 - U+4E44 |
pass |
[8F][B0][B1] |
[E4][B9][84] |
[E4][B9][84] |
[iconv] EUC-JP JIS-X-0212 0x4258 - U+66A4 |
pass |
[8F][C2][D8] |
[E6][9A][A4] |
[E6][9A][A4] |
[iconv] ISO-8859-1 0x76 -> U+0076 |
pass |
v |
v |
v |
[iconv] ISO-8859-1 0xE6 -> U+00E6 |
pass |
[E6] |
[C3][A6] |
[C3][A6] |
[iconv] ISO-8859-2 0x76 -> U+0076 |
pass |
v |
v |
v |
[iconv] ISO-8859-2 0xE6 -> U+0107 |
pass |
[E6] |
[C4][87] |
[C4][87] |
[iconv] ISO-8859-15 0x76 -> U+0076 |
pass |
v |
v |
v |
[iconv] ISO-8859-15 0xBE -> U+0178 |
pass |
[BE] |
[C5][B8] |
[C5][B8] |
Untitled sanitize test 1 (str) |
pass |
|
|
|
Untitled sanitize test 2 (str) |
pass |
hello |
hello |
hello |
Untitled sanitize test 3 (str) |
pass |
1 |
1 |
1 |
Untitled sanitize test 4 (str) |
pass |
[E2][80][A8] |
|
|
Untitled sanitize test 5 (str_multi) |
pass |
[E2][80][A8] |
[\n] |
[\n] |
Untitled sanitize test 6 (str) |
pass |
[E2][80][A9] |
|
|
Untitled sanitize test 7 (str_multi) |
pass |
[E2][80][A9] |
[\n][\n] |
[\n][\n] |
Untitled sanitize test 8 (str) |
pass |
[0B] |
|
|
Untitled sanitize test 9 (str_multi) |
pass |
[0B] |
[\n][\n] |
[\n][\n] |
Untitled sanitize test 10 (str) |
pass |
[0C] |
|
|
Untitled sanitize test 11 (str_multi) |
pass |
[0C] |
[\n][\n] |
[\n][\n] |
Untitled sanitize test 12 (str) |
pass |
[0D][\n] |
|
|
Untitled sanitize test 13 (str_multi) |
pass |
[0D][\n] |
[\n] |
[\n] |
LF [single line mode] |
pass |
[\n] |
|
|
LF [multi line mode] |
pass |
[\n] |
[\n] |
[\n] |
Untitled sanitize test 16 (str) |
pass |
[0D] |
|
|
Untitled sanitize test 17 (str_multi) |
pass |
[0D] |
[\n] |
[\n] |
mix of CRLF and CR [single line mode] |
pass |
[0D][0D][\n] |
|
|
mix of CRLF and CR [multi line mode] |
pass |
[0D][0D][\n] |
[\n][\n] |
[\n][\n] |
TAB [single line mode] |
pass |
[09] |
|
|
TAB [multi line mode] |
pass |
[09] |
|
|
NEL [single line mode] |
pass |
[C2][85] |
|
|
NEL [multi line mode] |
pass |
[C2][85] |
[\n] |
[\n] |
Strip Cc U+0000 |
pass |
foo[00]bar |
foobar |
foobar |
Strip Cc U+0001 |
pass |
foo[01]bar |
foobar |
foobar |
Strip Cc U+0002 |
pass |
foo[02]bar |
foobar |
foobar |
Strip Cc U+0003 |
pass |
foo[03]bar |
foobar |
foobar |
Strip Cc U+0004 |
pass |
foo[04]bar |
foobar |
foobar |
Strip Cc U+0005 |
pass |
foo[05]bar |
foobar |
foobar |
Strip Cc U+0006 |
pass |
foo[06]bar |
foobar |
foobar |
Strip Cc U+0007 |
pass |
foo[07]bar |
foobar |
foobar |
Strip Cc U+0008 |
pass |
foo[08]bar |
foobar |
foobar |
Strip Cc U+000E |
pass |
foo[0E]bar |
foobar |
foobar |
Strip Cc U+000F |
pass |
foo[0F]bar |
foobar |
foobar |
Strip Cc U+0010 |
pass |
foo[10]bar |
foobar |
foobar |
Strip Cc U+0011 |
pass |
foo[11]bar |
foobar |
foobar |
Strip Cc U+0012 |
pass |
foo[12]bar |
foobar |
foobar |
Strip Cc U+0013 |
pass |
foo[13]bar |
foobar |
foobar |
Strip Cc U+0014 |
pass |
foo[14]bar |
foobar |
foobar |
Strip Cc U+0015 |
pass |
foo[15]bar |
foobar |
foobar |
Strip Cc U+0016 |
pass |
foo[16]bar |
foobar |
foobar |
Strip Cc U+0017 |
pass |
foo[17]bar |
foobar |
foobar |
Strip Cc U+0018 |
pass |
foo[18]bar |
foobar |
foobar |
Strip Cc U+0019 |
pass |
foo[19]bar |
foobar |
foobar |
Strip Cc U+001A |
pass |
foo[1A]bar |
foobar |
foobar |
Strip Cc U+001B |
pass |
foo[1B]bar |
foobar |
foobar |
Strip Cc U+001C |
pass |
foo[1C]bar |
foobar |
foobar |
Strip Cc U+001D |
pass |
foo[1D]bar |
foobar |
foobar |
Strip Cc U+001E |
pass |
foo[1E]bar |
foobar |
foobar |
Strip Cc U+001F |
pass |
foo[1F]bar |
foobar |
foobar |
Strip Cc U+007F |
pass |
foobar |
foobar |
foobar |
Strip Cc U+0080 |
fail |
foo[80]bar |
foobar |
fooBAD+80bar |
Strip Cc U+0081 |
pass |
foo[C2][81]bar |
foobar |
foobar |
Strip Cc U+0082 |
pass |
foo[C2][82]bar |
foobar |
foobar |
Strip Cc U+0083 |
pass |
foo[C2][83]bar |
foobar |
foobar |
Strip Cc U+0084 |
pass |
foo[C2][84]bar |
foobar |
foobar |
Strip Cc U+0086 |
pass |
foo[C2][86]bar |
foobar |
foobar |
Strip Cc U+0087 |
pass |
foo[C2][87]bar |
foobar |
foobar |
Strip Cc U+0088 |
pass |
foo[C2][88]bar |
foobar |
foobar |
Strip Cc U+0089 |
pass |
foo[C2][89]bar |
foobar |
foobar |
Strip Cc U+008A |
pass |
foo[C2][8A]bar |
foobar |
foobar |
Strip Cc U+008B |
pass |
foo[C2][8B]bar |
foobar |
foobar |
Strip Cc U+008C |
pass |
foo[C2][8C]bar |
foobar |
foobar |
Strip Cc U+008D |
pass |
foo[C2][8D]bar |
foobar |
foobar |
Strip Cc U+008E |
pass |
foo[C2][8E]bar |
foobar |
foobar |
Strip Cc U+008F |
pass |
foo[C2][8F]bar |
foobar |
foobar |
Strip Cc U+0090 |
pass |
foo[C2][90]bar |
foobar |
foobar |
Strip Cc U+0091 |
pass |
foo[C2][91]bar |
foobar |
foobar |
Strip Cc U+0092 |
pass |
foo[C2][92]bar |
foobar |
foobar |
Strip Cc U+0093 |
pass |
foo[C2][93]bar |
foobar |
foobar |
Strip Cc U+0094 |
pass |
foo[C2][94]bar |
foobar |
foobar |
Strip Cc U+0095 |
pass |
foo[C2][95]bar |
foobar |
foobar |
Strip Cc U+0096 |
pass |
foo[C2][96]bar |
foobar |
foobar |
Strip Cc U+0097 |
pass |
foo[C2][97]bar |
foobar |
foobar |
Strip Cc U+0098 |
pass |
foo[C2][98]bar |
foobar |
foobar |
Strip Cc U+0099 |
pass |
foo[C2][99]bar |
foobar |
foobar |
Strip Cc U+009A |
pass |
foo[C2][9A]bar |
foobar |
foobar |
Strip Cc U+009B |
pass |
foo[C2][9B]bar |
foobar |
foobar |
Strip Cc U+009C |
pass |
foo[C2][9C]bar |
foobar |
foobar |
Strip Cc U+009D |
pass |
foo[C2][9D]bar |
foobar |
foobar |
Strip Cc U+009E |
pass |
foo[C2][9E]bar |
foobar |
foobar |
Strip Cc U+009F |
pass |
foo[C2][9F]bar |
foobar |
foobar |
Strip Cf U+FEFF |
pass |
foo[EF][BB][BF]bar |
foobar |
foobar |
Strip Cf U+206A |
pass |
foo[E2][81][AA]bar |
foobar |
foobar |
Strip Cf U+206B |
pass |
foo[E2][81][AB]bar |
foobar |
foobar |
Strip Cf U+206C |
pass |
foo[E2][81][AC]bar |
foobar |
foobar |
Strip Cf U+206D |
pass |
foo[E2][81][AD]bar |
foobar |
foobar |
Strip Cf U+206E |
pass |
foo[E2][81][AE]bar |
foobar |
foobar |
Strip Cf U+206F |
pass |
foo[E2][81][AF]bar |
foobar |
foobar |
Strip Cf U+FFF9 |
pass |
foo[EF][BF][B9]bar |
foobar |
foobar |
Strip Cf U+FFFA |
pass |
foo[EF][BF][BA]bar |
foobar |
foobar |
Strip Cf U+E0000 |
pass |
foo[F3][A0][80][80]bar |
foobar |
foobar |
Strip Cf U+E003F |
pass |
foo[F3][A0][80][BF]bar |
foobar |
foobar |
Strip Cf U+E007F |
pass |
foo[F3][A0][81][BF]bar |
foobar |
foobar |
Strip Cs U+D800 |
fail |
foo[ED][A0][80]bar |
foobar |
fooBAD+DBAD+A0BAD+80bar |
Strip Cs U+DA00 |
fail |
foo[ED][A8][80]bar |
foobar |
fooBAD+DBAD+A8BAD+80bar |
Strip Cs U+DBFF |
fail |
foo[ED][AF][BF]bar |
foobar |
fooBAD+DBAD+AFBAD+BFbar |
Strip Cs U+DC00 |
fail |
foo[ED][B0][80]bar |
foobar |
fooBAD+DBAD+B0BAD+80bar |
Strip Cs U+DE00 |
fail |
foo[ED][B8][80]bar |
foobar |
fooBAD+DBAD+B8BAD+80bar |
Strip Cs U+DFFF |
fail |
foo[ED][BF][BF]bar |
foobar |
fooBAD+DBAD+BFBAD+BFbar |
Strip Cn non-character U+FFFE |
pass |
foo[EF][BF][BE]bar |
foobar |
foobar |
Strip Cn non-character U+FFFF |
pass |
foo[EF][BF][BF]bar |
foobar |
foobar |
Strip Cn non-character U+1FFFE |
pass |
foo[F0][9F][BF][BE]bar |
foobar |
foobar |
Strip Cn non-character U+1FFFF |
pass |
foo[F0][9F][BF][BF]bar |
foobar |
foobar |
Strip Cn non-character U+2FFFE |
pass |
foo[F0][AF][BF][BE]bar |
foobar |
foobar |
Strip Cn non-character U+2FFFF |
pass |
foo[F0][AF][BF][BF]bar |
foobar |
foobar |
Strip Cn non-character U+10FFFE |
pass |
foo[F4][8F][BF][BE]bar |
foobar |
foobar |
Strip Cn non-character U+10FFFF |
pass |
foo[F4][8F][BF][BF]bar |
foobar |
foobar |
Strip Cn non-character U+FDD0 |
pass |
foo[EF][B7][90]bar |
foobar |
foobar |
Strip Cn non-character U+FDE0 |
pass |
foo[EF][B7][A0]bar |
foobar |
foobar |
Strip Cn non-character U+FDEF |
pass |
foo[EF][B7][AF]bar |
foobar |
foobar |
Replace So U+FFFC with ? |
pass |
foo[EF][BF][BC]bar |
foo?bar |
foo?bar |
Replace So U+FFFD with ? |
pass |
foo[EF][BF][BD]bar |
foo?bar |
foo?bar |