Name | Status | Input | Expected | Got |
[PHP] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]b |
[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/ 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/ 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/ 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/ 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] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]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 |
[iconv] highest possible 2-byte (strip) - U+07FF |
fail |
a[DF][BF]b |
ab |
a[DF][BF]b |
Strip Cc U+0080 |
fail |
foo[80]bar |
foobar |
fooBAD+80bar |
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 |