1===== Conversion of a one-byte character ===== 2 3----- Valid characters ----- 4UTF8: 00 7f 01 10 7e 5d 5UTF32: 00000000 0000007f 00000001 00000010 0000007e 0000005d 6 cc = 0 7 dst address difference: 24 dst len: 1976 8 src address difference: 6 src len: 0 9 10----- Invalid characters ----- 11UTF8: 80 12UTF32: <none> 13 cc = 2 14 dst address difference: 0 dst len: 2000 15 src address difference: 0 src len: 1 16UTF8: bf 17UTF32: <none> 18 cc = 2 19 dst address difference: 0 dst len: 2000 20 src address difference: 0 src len: 1 21UTF8: f8 22UTF32: <none> 23 cc = 2 24 dst address difference: 0 dst len: 2000 25 src address difference: 0 src len: 1 26UTF8: ff 27UTF32: <none> 28 cc = 2 29 dst address difference: 0 dst len: 2000 30 src address difference: 0 src len: 1 31UTF8: 81 32UTF32: <none> 33 cc = 2 34 dst address difference: 0 dst len: 2000 35 src address difference: 0 src len: 1 36UTF8: be 37UTF32: <none> 38 cc = 2 39 dst address difference: 0 dst len: 2000 40 src address difference: 0 src len: 1 41UTF8: 95 42UTF32: <none> 43 cc = 2 44 dst address difference: 0 dst len: 2000 45 src address difference: 0 src len: 1 46UTF8: ab 47UTF32: <none> 48 cc = 2 49 dst address difference: 0 dst len: 2000 50 src address difference: 0 src len: 1 51 52----- Invalid characters if m3 == 1 ----- 53UTF8: c0 54UTF32: <none> 55 cc = 2 56 dst address difference: 0 dst len: 2000 57 src address difference: 0 src len: 1 58UTF8: c1 59UTF32: <none> 60 cc = 2 61 dst address difference: 0 dst len: 2000 62 src address difference: 0 src len: 1 63UTF8: f5 64UTF32: <none> 65 cc = 2 66 dst address difference: 0 dst len: 2000 67 src address difference: 0 src len: 1 68UTF8: f6 69UTF32: <none> 70 cc = 2 71 dst address difference: 0 dst len: 2000 72 src address difference: 0 src len: 1 73UTF8: f7 74UTF32: <none> 75 cc = 2 76 dst address difference: 0 dst len: 2000 77 src address difference: 0 src len: 1 78 79----- 1st char valid, 2nd char invalid ----- 80UTF8: 10 aa 81UTF32: 00000010 82 cc = 2 83 dst address difference: 4 dst len: 1996 84 src address difference: 1 src len: 1 85 86===== Conversion of a two-byte character ===== 87 88----- Valid characters ----- 89UTF8: c2 80 c2 bf df 80 df bf c3 be da bc 90UTF32: 00000080 000000bf 000007c0 000007ff 000000fe 000006bc 91 cc = 0 92 dst address difference: 24 dst len: 1976 93 src address difference: 12 src len: 0 94 95----- Valid characters if m3 == 0 ----- 96UTF8: c0 80 c0 bf c1 80 c0 bf 97UTF32: <none> 98 cc = 2 99 dst address difference: 0 dst len: 2000 100 src address difference: 0 src len: 8 101 102----- Invalid characters if m3 == 1 ----- 103UTF8: c2 00 104UTF32: <none> 105 cc = 2 106 dst address difference: 0 dst len: 2000 107 src address difference: 0 src len: 2 108UTF8: c2 7f 109UTF32: <none> 110 cc = 2 111 dst address difference: 0 dst len: 2000 112 src address difference: 0 src len: 2 113UTF8: c2 c0 114UTF32: <none> 115 cc = 2 116 dst address difference: 0 dst len: 2000 117 src address difference: 0 src len: 2 118UTF8: c2 ff 119UTF32: <none> 120 cc = 2 121 dst address difference: 0 dst len: 2000 122 src address difference: 0 src len: 2 123 124----- 1st char valid, 2nd char invalid ----- 125UTF8: c3 81 c4 00 126UTF32: 000000c1 127 cc = 2 128 dst address difference: 4 dst len: 1996 129 src address difference: 2 src len: 2 130 131===== Conversion of a three-byte character ===== 132 133----- Valid characters ----- 134UTF8: e0 a0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb 135UTF32: 00000800 00000fc0 0000083f 00000fff 00000abb 136 cc = 0 137 dst address difference: 20 dst len: 1980 138 src address difference: 15 src len: 0 139UTF8: ed 80 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb 140UTF32: 0000d000 0000d7c0 0000d03f 0000d7ff 0000d2bb 141 cc = 0 142 dst address difference: 20 dst len: 1980 143 src address difference: 15 src len: 0 144UTF8: e1 80 80 145UTF32: 00001000 146 cc = 0 147 dst address difference: 4 dst len: 1996 148 src address difference: 3 src len: 0 149UTF8: e1 bf 80 150UTF32: 00001fc0 151 cc = 0 152 dst address difference: 4 dst len: 1996 153 src address difference: 3 src len: 0 154UTF8: e1 80 bf 155UTF32: 0000103f 156 cc = 0 157 dst address difference: 4 dst len: 1996 158 src address difference: 3 src len: 0 159UTF8: e1 bf bf 160UTF32: 00001fff 161 cc = 0 162 dst address difference: 4 dst len: 1996 163 src address difference: 3 src len: 0 164UTF8: e2 80 80 165UTF32: 00002000 166 cc = 0 167 dst address difference: 4 dst len: 1996 168 src address difference: 3 src len: 0 169UTF8: e2 bf 80 170UTF32: 00002fc0 171 cc = 0 172 dst address difference: 4 dst len: 1996 173 src address difference: 3 src len: 0 174UTF8: e2 80 bf 175UTF32: 0000203f 176 cc = 0 177 dst address difference: 4 dst len: 1996 178 src address difference: 3 src len: 0 179UTF8: e2 bf bf 180UTF32: 00002fff 181 cc = 0 182 dst address difference: 4 dst len: 1996 183 src address difference: 3 src len: 0 184UTF8: e3 80 80 185UTF32: 00003000 186 cc = 0 187 dst address difference: 4 dst len: 1996 188 src address difference: 3 src len: 0 189UTF8: e3 bf 80 190UTF32: 00003fc0 191 cc = 0 192 dst address difference: 4 dst len: 1996 193 src address difference: 3 src len: 0 194UTF8: e3 80 bf 195UTF32: 0000303f 196 cc = 0 197 dst address difference: 4 dst len: 1996 198 src address difference: 3 src len: 0 199UTF8: e3 bf bf 200UTF32: 00003fff 201 cc = 0 202 dst address difference: 4 dst len: 1996 203 src address difference: 3 src len: 0 204UTF8: e4 80 80 205UTF32: 00004000 206 cc = 0 207 dst address difference: 4 dst len: 1996 208 src address difference: 3 src len: 0 209UTF8: e4 bf 80 210UTF32: 00004fc0 211 cc = 0 212 dst address difference: 4 dst len: 1996 213 src address difference: 3 src len: 0 214UTF8: e4 80 bf 215UTF32: 0000403f 216 cc = 0 217 dst address difference: 4 dst len: 1996 218 src address difference: 3 src len: 0 219UTF8: e4 bf bf 220UTF32: 00004fff 221 cc = 0 222 dst address difference: 4 dst len: 1996 223 src address difference: 3 src len: 0 224UTF8: e5 80 80 225UTF32: 00005000 226 cc = 0 227 dst address difference: 4 dst len: 1996 228 src address difference: 3 src len: 0 229UTF8: e5 bf 80 230UTF32: 00005fc0 231 cc = 0 232 dst address difference: 4 dst len: 1996 233 src address difference: 3 src len: 0 234UTF8: e5 80 bf 235UTF32: 0000503f 236 cc = 0 237 dst address difference: 4 dst len: 1996 238 src address difference: 3 src len: 0 239UTF8: e5 bf bf 240UTF32: 00005fff 241 cc = 0 242 dst address difference: 4 dst len: 1996 243 src address difference: 3 src len: 0 244UTF8: e6 80 80 245UTF32: 00006000 246 cc = 0 247 dst address difference: 4 dst len: 1996 248 src address difference: 3 src len: 0 249UTF8: e6 bf 80 250UTF32: 00006fc0 251 cc = 0 252 dst address difference: 4 dst len: 1996 253 src address difference: 3 src len: 0 254UTF8: e6 80 bf 255UTF32: 0000603f 256 cc = 0 257 dst address difference: 4 dst len: 1996 258 src address difference: 3 src len: 0 259UTF8: e6 bf bf 260UTF32: 00006fff 261 cc = 0 262 dst address difference: 4 dst len: 1996 263 src address difference: 3 src len: 0 264UTF8: e7 80 80 265UTF32: 00007000 266 cc = 0 267 dst address difference: 4 dst len: 1996 268 src address difference: 3 src len: 0 269UTF8: e7 bf 80 270UTF32: 00007fc0 271 cc = 0 272 dst address difference: 4 dst len: 1996 273 src address difference: 3 src len: 0 274UTF8: e7 80 bf 275UTF32: 0000703f 276 cc = 0 277 dst address difference: 4 dst len: 1996 278 src address difference: 3 src len: 0 279UTF8: e7 bf bf 280UTF32: 00007fff 281 cc = 0 282 dst address difference: 4 dst len: 1996 283 src address difference: 3 src len: 0 284UTF8: e8 80 80 285UTF32: 00008000 286 cc = 0 287 dst address difference: 4 dst len: 1996 288 src address difference: 3 src len: 0 289UTF8: e8 bf 80 290UTF32: 00008fc0 291 cc = 0 292 dst address difference: 4 dst len: 1996 293 src address difference: 3 src len: 0 294UTF8: e8 80 bf 295UTF32: 0000803f 296 cc = 0 297 dst address difference: 4 dst len: 1996 298 src address difference: 3 src len: 0 299UTF8: e8 bf bf 300UTF32: 00008fff 301 cc = 0 302 dst address difference: 4 dst len: 1996 303 src address difference: 3 src len: 0 304UTF8: e9 80 80 305UTF32: 00009000 306 cc = 0 307 dst address difference: 4 dst len: 1996 308 src address difference: 3 src len: 0 309UTF8: e9 bf 80 310UTF32: 00009fc0 311 cc = 0 312 dst address difference: 4 dst len: 1996 313 src address difference: 3 src len: 0 314UTF8: e9 80 bf 315UTF32: 0000903f 316 cc = 0 317 dst address difference: 4 dst len: 1996 318 src address difference: 3 src len: 0 319UTF8: e9 bf bf 320UTF32: 00009fff 321 cc = 0 322 dst address difference: 4 dst len: 1996 323 src address difference: 3 src len: 0 324UTF8: ea 80 80 325UTF32: 0000a000 326 cc = 0 327 dst address difference: 4 dst len: 1996 328 src address difference: 3 src len: 0 329UTF8: ea bf 80 330UTF32: 0000afc0 331 cc = 0 332 dst address difference: 4 dst len: 1996 333 src address difference: 3 src len: 0 334UTF8: ea 80 bf 335UTF32: 0000a03f 336 cc = 0 337 dst address difference: 4 dst len: 1996 338 src address difference: 3 src len: 0 339UTF8: ea bf bf 340UTF32: 0000afff 341 cc = 0 342 dst address difference: 4 dst len: 1996 343 src address difference: 3 src len: 0 344UTF8: eb 80 80 345UTF32: 0000b000 346 cc = 0 347 dst address difference: 4 dst len: 1996 348 src address difference: 3 src len: 0 349UTF8: eb bf 80 350UTF32: 0000bfc0 351 cc = 0 352 dst address difference: 4 dst len: 1996 353 src address difference: 3 src len: 0 354UTF8: eb 80 bf 355UTF32: 0000b03f 356 cc = 0 357 dst address difference: 4 dst len: 1996 358 src address difference: 3 src len: 0 359UTF8: eb bf bf 360UTF32: 0000bfff 361 cc = 0 362 dst address difference: 4 dst len: 1996 363 src address difference: 3 src len: 0 364UTF8: ec 80 80 365UTF32: 0000c000 366 cc = 0 367 dst address difference: 4 dst len: 1996 368 src address difference: 3 src len: 0 369UTF8: ec bf 80 370UTF32: 0000cfc0 371 cc = 0 372 dst address difference: 4 dst len: 1996 373 src address difference: 3 src len: 0 374UTF8: ec 80 bf 375UTF32: 0000c03f 376 cc = 0 377 dst address difference: 4 dst len: 1996 378 src address difference: 3 src len: 0 379UTF8: ec bf bf 380UTF32: 0000cfff 381 cc = 0 382 dst address difference: 4 dst len: 1996 383 src address difference: 3 src len: 0 384UTF8: ee 80 80 385UTF32: 0000e000 386 cc = 0 387 dst address difference: 4 dst len: 1996 388 src address difference: 3 src len: 0 389UTF8: ee bf 80 390UTF32: 0000efc0 391 cc = 0 392 dst address difference: 4 dst len: 1996 393 src address difference: 3 src len: 0 394UTF8: ee 80 bf 395UTF32: 0000e03f 396 cc = 0 397 dst address difference: 4 dst len: 1996 398 src address difference: 3 src len: 0 399UTF8: ee bf bf 400UTF32: 0000efff 401 cc = 0 402 dst address difference: 4 dst len: 1996 403 src address difference: 3 src len: 0 404UTF8: ef 80 80 405UTF32: 0000f000 406 cc = 0 407 dst address difference: 4 dst len: 1996 408 src address difference: 3 src len: 0 409UTF8: ef bf 80 410UTF32: 0000ffc0 411 cc = 0 412 dst address difference: 4 dst len: 1996 413 src address difference: 3 src len: 0 414UTF8: ef 80 bf 415UTF32: 0000f03f 416 cc = 0 417 dst address difference: 4 dst len: 1996 418 src address difference: 3 src len: 0 419UTF8: ef bf bf 420UTF32: 0000ffff 421 cc = 0 422 dst address difference: 4 dst len: 1996 423 src address difference: 3 src len: 0 424 425----- Invalid characters (2nd byte is invalid) ----- 426UTF8: e0 9f 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb 427UTF32: <none> 428 cc = 2 429 dst address difference: 0 dst len: 2000 430 src address difference: 0 src len: 15 431UTF8: e0 c0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb 432UTF32: <none> 433 cc = 2 434 dst address difference: 0 dst len: 2000 435 src address difference: 0 src len: 15 436UTF8: ed 7f 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb 437UTF32: <none> 438 cc = 2 439 dst address difference: 0 dst len: 2000 440 src address difference: 0 src len: 15 441UTF8: ed a0 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb 442UTF32: <none> 443 cc = 2 444 dst address difference: 0 dst len: 2000 445 src address difference: 0 src len: 15 446UTF8: e1 7f 80 447UTF32: <none> 448 cc = 2 449 dst address difference: 0 dst len: 2000 450 src address difference: 0 src len: 3 451UTF8: e1 c0 80 452UTF32: <none> 453 cc = 2 454 dst address difference: 0 dst len: 2000 455 src address difference: 0 src len: 3 456UTF8: e2 7f 80 457UTF32: <none> 458 cc = 2 459 dst address difference: 0 dst len: 2000 460 src address difference: 0 src len: 3 461UTF8: e2 c0 80 462UTF32: <none> 463 cc = 2 464 dst address difference: 0 dst len: 2000 465 src address difference: 0 src len: 3 466UTF8: e3 7f 80 467UTF32: <none> 468 cc = 2 469 dst address difference: 0 dst len: 2000 470 src address difference: 0 src len: 3 471UTF8: e3 c0 80 472UTF32: <none> 473 cc = 2 474 dst address difference: 0 dst len: 2000 475 src address difference: 0 src len: 3 476UTF8: e4 7f 80 477UTF32: <none> 478 cc = 2 479 dst address difference: 0 dst len: 2000 480 src address difference: 0 src len: 3 481UTF8: e4 c0 80 482UTF32: <none> 483 cc = 2 484 dst address difference: 0 dst len: 2000 485 src address difference: 0 src len: 3 486UTF8: e5 7f 80 487UTF32: <none> 488 cc = 2 489 dst address difference: 0 dst len: 2000 490 src address difference: 0 src len: 3 491UTF8: e5 c0 80 492UTF32: <none> 493 cc = 2 494 dst address difference: 0 dst len: 2000 495 src address difference: 0 src len: 3 496UTF8: e6 7f 80 497UTF32: <none> 498 cc = 2 499 dst address difference: 0 dst len: 2000 500 src address difference: 0 src len: 3 501UTF8: e6 c0 80 502UTF32: <none> 503 cc = 2 504 dst address difference: 0 dst len: 2000 505 src address difference: 0 src len: 3 506UTF8: e7 7f 80 507UTF32: <none> 508 cc = 2 509 dst address difference: 0 dst len: 2000 510 src address difference: 0 src len: 3 511UTF8: e7 c0 80 512UTF32: <none> 513 cc = 2 514 dst address difference: 0 dst len: 2000 515 src address difference: 0 src len: 3 516UTF8: e8 7f 80 517UTF32: <none> 518 cc = 2 519 dst address difference: 0 dst len: 2000 520 src address difference: 0 src len: 3 521UTF8: e8 c0 80 522UTF32: <none> 523 cc = 2 524 dst address difference: 0 dst len: 2000 525 src address difference: 0 src len: 3 526UTF8: e9 7f 80 527UTF32: <none> 528 cc = 2 529 dst address difference: 0 dst len: 2000 530 src address difference: 0 src len: 3 531UTF8: e9 c0 80 532UTF32: <none> 533 cc = 2 534 dst address difference: 0 dst len: 2000 535 src address difference: 0 src len: 3 536UTF8: ea 7f 80 537UTF32: <none> 538 cc = 2 539 dst address difference: 0 dst len: 2000 540 src address difference: 0 src len: 3 541UTF8: ea c0 80 542UTF32: <none> 543 cc = 2 544 dst address difference: 0 dst len: 2000 545 src address difference: 0 src len: 3 546UTF8: eb 7f 80 547UTF32: <none> 548 cc = 2 549 dst address difference: 0 dst len: 2000 550 src address difference: 0 src len: 3 551UTF8: eb c0 80 552UTF32: <none> 553 cc = 2 554 dst address difference: 0 dst len: 2000 555 src address difference: 0 src len: 3 556UTF8: ec 7f 80 557UTF32: <none> 558 cc = 2 559 dst address difference: 0 dst len: 2000 560 src address difference: 0 src len: 3 561UTF8: ec c0 80 562UTF32: <none> 563 cc = 2 564 dst address difference: 0 dst len: 2000 565 src address difference: 0 src len: 3 566UTF8: ee 7f 80 567UTF32: <none> 568 cc = 2 569 dst address difference: 0 dst len: 2000 570 src address difference: 0 src len: 3 571UTF8: ee c0 80 572UTF32: <none> 573 cc = 2 574 dst address difference: 0 dst len: 2000 575 src address difference: 0 src len: 3 576UTF8: ef 7f 80 577UTF32: <none> 578 cc = 2 579 dst address difference: 0 dst len: 2000 580 src address difference: 0 src len: 3 581UTF8: ef c0 80 582UTF32: <none> 583 cc = 2 584 dst address difference: 0 dst len: 2000 585 src address difference: 0 src len: 3 586 587----- Invalid characters (3rd byte is invalid) ----- 588UTF8: e0 ab 7f 589UTF32: <none> 590 cc = 2 591 dst address difference: 0 dst len: 2000 592 src address difference: 0 src len: 3 593UTF8: e0 ab c0 594UTF32: <none> 595 cc = 2 596 dst address difference: 0 dst len: 2000 597 src address difference: 0 src len: 3 598UTF8: e1 ab 7f 599UTF32: <none> 600 cc = 2 601 dst address difference: 0 dst len: 2000 602 src address difference: 0 src len: 3 603UTF8: e1 ab c0 604UTF32: <none> 605 cc = 2 606 dst address difference: 0 dst len: 2000 607 src address difference: 0 src len: 3 608UTF8: e2 ab 7f 609UTF32: <none> 610 cc = 2 611 dst address difference: 0 dst len: 2000 612 src address difference: 0 src len: 3 613UTF8: e2 ab c0 614UTF32: <none> 615 cc = 2 616 dst address difference: 0 dst len: 2000 617 src address difference: 0 src len: 3 618UTF8: e3 ab 7f 619UTF32: <none> 620 cc = 2 621 dst address difference: 0 dst len: 2000 622 src address difference: 0 src len: 3 623UTF8: e3 ab c0 624UTF32: <none> 625 cc = 2 626 dst address difference: 0 dst len: 2000 627 src address difference: 0 src len: 3 628UTF8: e4 ab 7f 629UTF32: <none> 630 cc = 2 631 dst address difference: 0 dst len: 2000 632 src address difference: 0 src len: 3 633UTF8: e4 ab c0 634UTF32: <none> 635 cc = 2 636 dst address difference: 0 dst len: 2000 637 src address difference: 0 src len: 3 638UTF8: e5 ab 7f 639UTF32: <none> 640 cc = 2 641 dst address difference: 0 dst len: 2000 642 src address difference: 0 src len: 3 643UTF8: e5 ab c0 644UTF32: <none> 645 cc = 2 646 dst address difference: 0 dst len: 2000 647 src address difference: 0 src len: 3 648UTF8: e6 ab 7f 649UTF32: <none> 650 cc = 2 651 dst address difference: 0 dst len: 2000 652 src address difference: 0 src len: 3 653UTF8: e6 ab c0 654UTF32: <none> 655 cc = 2 656 dst address difference: 0 dst len: 2000 657 src address difference: 0 src len: 3 658UTF8: e7 ab 7f 659UTF32: <none> 660 cc = 2 661 dst address difference: 0 dst len: 2000 662 src address difference: 0 src len: 3 663UTF8: e7 ab c0 664UTF32: <none> 665 cc = 2 666 dst address difference: 0 dst len: 2000 667 src address difference: 0 src len: 3 668UTF8: e8 ab 7f 669UTF32: <none> 670 cc = 2 671 dst address difference: 0 dst len: 2000 672 src address difference: 0 src len: 3 673UTF8: e8 ab c0 674UTF32: <none> 675 cc = 2 676 dst address difference: 0 dst len: 2000 677 src address difference: 0 src len: 3 678UTF8: e9 ab 7f 679UTF32: <none> 680 cc = 2 681 dst address difference: 0 dst len: 2000 682 src address difference: 0 src len: 3 683UTF8: e9 ab c0 684UTF32: <none> 685 cc = 2 686 dst address difference: 0 dst len: 2000 687 src address difference: 0 src len: 3 688UTF8: ea ab 7f 689UTF32: <none> 690 cc = 2 691 dst address difference: 0 dst len: 2000 692 src address difference: 0 src len: 3 693UTF8: ea ab c0 694UTF32: <none> 695 cc = 2 696 dst address difference: 0 dst len: 2000 697 src address difference: 0 src len: 3 698UTF8: eb ab 7f 699UTF32: <none> 700 cc = 2 701 dst address difference: 0 dst len: 2000 702 src address difference: 0 src len: 3 703UTF8: eb ab c0 704UTF32: <none> 705 cc = 2 706 dst address difference: 0 dst len: 2000 707 src address difference: 0 src len: 3 708UTF8: ec ab 7f 709UTF32: <none> 710 cc = 2 711 dst address difference: 0 dst len: 2000 712 src address difference: 0 src len: 3 713UTF8: ec ab c0 714UTF32: <none> 715 cc = 2 716 dst address difference: 0 dst len: 2000 717 src address difference: 0 src len: 3 718UTF8: ed ab 7f 719UTF32: <none> 720 cc = 2 721 dst address difference: 0 dst len: 2000 722 src address difference: 0 src len: 3 723UTF8: ed ab c0 724UTF32: <none> 725 cc = 2 726 dst address difference: 0 dst len: 2000 727 src address difference: 0 src len: 3 728UTF8: ee ab 7f 729UTF32: <none> 730 cc = 2 731 dst address difference: 0 dst len: 2000 732 src address difference: 0 src len: 3 733UTF8: ee ab c0 734UTF32: <none> 735 cc = 2 736 dst address difference: 0 dst len: 2000 737 src address difference: 0 src len: 3 738UTF8: ef ab 7f 739UTF32: <none> 740 cc = 2 741 dst address difference: 0 dst len: 2000 742 src address difference: 0 src len: 3 743UTF8: ef ab c0 744UTF32: <none> 745 cc = 2 746 dst address difference: 0 dst len: 2000 747 src address difference: 0 src len: 3 748 749----- Invalid 2nd char AND output exhausted ----- 750UTF8: e0 00 80 751UTF32: <none> 752 cc = 2 753 dst address difference: 0 dst len: 1 754 src address difference: 0 src len: 3 755 756----- Invalid 3rd char AND output exhausted ----- 757UTF8: e4 84 00 758UTF32: <none> 759 cc = 2 760 dst address difference: 0 dst len: 1 761 src address difference: 0 src len: 3 762 763----- 1st char valid, 2nd char invalid ----- 764UTF8: e1 90 90 e1 00 90 765UTF32: 00001410 766 cc = 2 767 dst address difference: 4 dst len: 1996 768 src address difference: 3 src len: 3 769 770===== Conversion of a four-byte character ===== 771 772----- Valid characters ----- 773UTF8: f0 90 80 80 774UTF32: 00010000 775 cc = 0 776 dst address difference: 4 dst len: 1996 777 src address difference: 4 src len: 0 778UTF8: f0 90 80 bf 779UTF32: 0001003f 780 cc = 0 781 dst address difference: 4 dst len: 1996 782 src address difference: 4 src len: 0 783UTF8: f0 90 bf 80 784UTF32: 00010fc0 785 cc = 0 786 dst address difference: 4 dst len: 1996 787 src address difference: 4 src len: 0 788UTF8: f0 90 bf bf 789UTF32: 00010fff 790 cc = 0 791 dst address difference: 4 dst len: 1996 792 src address difference: 4 src len: 0 793UTF8: f0 bf 80 80 794UTF32: 0003f000 795 cc = 0 796 dst address difference: 4 dst len: 1996 797 src address difference: 4 src len: 0 798UTF8: f0 bf 80 bf 799UTF32: 0003f03f 800 cc = 0 801 dst address difference: 4 dst len: 1996 802 src address difference: 4 src len: 0 803UTF8: f0 bf bf 80 804UTF32: 0003ffc0 805 cc = 0 806 dst address difference: 4 dst len: 1996 807 src address difference: 4 src len: 0 808UTF8: f0 bf bf bf 809UTF32: 0003ffff 810 cc = 0 811 dst address difference: 4 dst len: 1996 812 src address difference: 4 src len: 0 813UTF8: f1 80 80 80 814UTF32: 00040000 815 cc = 0 816 dst address difference: 4 dst len: 1996 817 src address difference: 4 src len: 0 818UTF8: f1 80 80 bf 819UTF32: 0004003f 820 cc = 0 821 dst address difference: 4 dst len: 1996 822 src address difference: 4 src len: 0 823UTF8: f1 80 bf 80 824UTF32: 00040fc0 825 cc = 0 826 dst address difference: 4 dst len: 1996 827 src address difference: 4 src len: 0 828UTF8: f1 80 bf bf 829UTF32: 00040fff 830 cc = 0 831 dst address difference: 4 dst len: 1996 832 src address difference: 4 src len: 0 833UTF8: f1 bf 80 80 834UTF32: 0007f000 835 cc = 0 836 dst address difference: 4 dst len: 1996 837 src address difference: 4 src len: 0 838UTF8: f1 bf 80 bf 839UTF32: 0007f03f 840 cc = 0 841 dst address difference: 4 dst len: 1996 842 src address difference: 4 src len: 0 843UTF8: f1 bf bf 80 844UTF32: 0007ffc0 845 cc = 0 846 dst address difference: 4 dst len: 1996 847 src address difference: 4 src len: 0 848UTF8: f1 bf bf bf 849UTF32: 0007ffff 850 cc = 0 851 dst address difference: 4 dst len: 1996 852 src address difference: 4 src len: 0 853UTF8: f2 80 80 80 854UTF32: 00080000 855 cc = 0 856 dst address difference: 4 dst len: 1996 857 src address difference: 4 src len: 0 858UTF8: f2 80 80 bf 859UTF32: 0008003f 860 cc = 0 861 dst address difference: 4 dst len: 1996 862 src address difference: 4 src len: 0 863UTF8: f2 80 bf 80 864UTF32: 00080fc0 865 cc = 0 866 dst address difference: 4 dst len: 1996 867 src address difference: 4 src len: 0 868UTF8: f2 80 bf bf 869UTF32: 00080fff 870 cc = 0 871 dst address difference: 4 dst len: 1996 872 src address difference: 4 src len: 0 873UTF8: f2 bf 80 80 874UTF32: 000bf000 875 cc = 0 876 dst address difference: 4 dst len: 1996 877 src address difference: 4 src len: 0 878UTF8: f2 bf 80 bf 879UTF32: 000bf03f 880 cc = 0 881 dst address difference: 4 dst len: 1996 882 src address difference: 4 src len: 0 883UTF8: f2 bf bf 80 884UTF32: 000bffc0 885 cc = 0 886 dst address difference: 4 dst len: 1996 887 src address difference: 4 src len: 0 888UTF8: f2 bf bf bf 889UTF32: 000bffff 890 cc = 0 891 dst address difference: 4 dst len: 1996 892 src address difference: 4 src len: 0 893UTF8: f3 80 80 80 894UTF32: 000c0000 895 cc = 0 896 dst address difference: 4 dst len: 1996 897 src address difference: 4 src len: 0 898UTF8: f3 80 80 bf 899UTF32: 000c003f 900 cc = 0 901 dst address difference: 4 dst len: 1996 902 src address difference: 4 src len: 0 903UTF8: f3 80 bf 80 904UTF32: 000c0fc0 905 cc = 0 906 dst address difference: 4 dst len: 1996 907 src address difference: 4 src len: 0 908UTF8: f3 80 bf bf 909UTF32: 000c0fff 910 cc = 0 911 dst address difference: 4 dst len: 1996 912 src address difference: 4 src len: 0 913UTF8: f3 bf 80 80 914UTF32: 000ff000 915 cc = 0 916 dst address difference: 4 dst len: 1996 917 src address difference: 4 src len: 0 918UTF8: f3 bf 80 bf 919UTF32: 000ff03f 920 cc = 0 921 dst address difference: 4 dst len: 1996 922 src address difference: 4 src len: 0 923UTF8: f3 bf bf 80 924UTF32: 000fffc0 925 cc = 0 926 dst address difference: 4 dst len: 1996 927 src address difference: 4 src len: 0 928UTF8: f3 bf bf bf 929UTF32: 000fffff 930 cc = 0 931 dst address difference: 4 dst len: 1996 932 src address difference: 4 src len: 0 933UTF8: f4 80 80 80 934UTF32: 00100000 935 cc = 0 936 dst address difference: 4 dst len: 1996 937 src address difference: 4 src len: 0 938UTF8: f4 80 80 bf 939UTF32: 0010003f 940 cc = 0 941 dst address difference: 4 dst len: 1996 942 src address difference: 4 src len: 0 943UTF8: f4 80 bf 80 944UTF32: 00100fc0 945 cc = 0 946 dst address difference: 4 dst len: 1996 947 src address difference: 4 src len: 0 948UTF8: f4 80 bf bf 949UTF32: 00100fff 950 cc = 0 951 dst address difference: 4 dst len: 1996 952 src address difference: 4 src len: 0 953UTF8: f4 8f 80 80 954UTF32: 0010f000 955 cc = 0 956 dst address difference: 4 dst len: 1996 957 src address difference: 4 src len: 0 958UTF8: f4 8f 80 bf 959UTF32: 0010f03f 960 cc = 0 961 dst address difference: 4 dst len: 1996 962 src address difference: 4 src len: 0 963UTF8: f4 8f bf 80 964UTF32: 0010ffc0 965 cc = 0 966 dst address difference: 4 dst len: 1996 967 src address difference: 4 src len: 0 968UTF8: f4 8f bf bf 969UTF32: 0010ffff 970 cc = 0 971 dst address difference: 4 dst len: 1996 972 src address difference: 4 src len: 0 973 974----- Valid characters if m3 == 0 ----- 975UTF8: f5 00 00 00 f6 11 22 33 f7 44 55 66 976UTF32: <none> 977 cc = 2 978 dst address difference: 0 dst len: 2000 979 src address difference: 0 src len: 12 980 981----- Invalid characters (2nd byte is invalid) ----- 982UTF8: f0 8f 80 80 983UTF32: <none> 984 cc = 2 985 dst address difference: 0 dst len: 2000 986 src address difference: 0 src len: 4 987UTF8: f0 c0 80 80 988UTF32: <none> 989 cc = 2 990 dst address difference: 0 dst len: 2000 991 src address difference: 0 src len: 4 992UTF8: f4 7f 80 80 993UTF32: <none> 994 cc = 2 995 dst address difference: 0 dst len: 2000 996 src address difference: 0 src len: 4 997UTF8: f4 90 80 80 998UTF32: <none> 999 cc = 2 1000 dst address difference: 0 dst len: 2000 1001 src address difference: 0 src len: 4 1002UTF8: f1 7f 80 80 1003UTF32: <none> 1004 cc = 2 1005 dst address difference: 0 dst len: 2000 1006 src address difference: 0 src len: 4 1007UTF8: f1 c0 80 80 1008UTF32: <none> 1009 cc = 2 1010 dst address difference: 0 dst len: 2000 1011 src address difference: 0 src len: 4 1012UTF8: f2 7f 80 80 1013UTF32: <none> 1014 cc = 2 1015 dst address difference: 0 dst len: 2000 1016 src address difference: 0 src len: 4 1017UTF8: f2 c0 80 80 1018UTF32: <none> 1019 cc = 2 1020 dst address difference: 0 dst len: 2000 1021 src address difference: 0 src len: 4 1022UTF8: f3 7f 80 80 1023UTF32: <none> 1024 cc = 2 1025 dst address difference: 0 dst len: 2000 1026 src address difference: 0 src len: 4 1027UTF8: f3 c0 80 80 1028UTF32: <none> 1029 cc = 2 1030 dst address difference: 0 dst len: 2000 1031 src address difference: 0 src len: 4 1032 1033----- Invalid characters (3rd byte is invalid) ----- 1034UTF8: f0 94 7f 80 1035UTF32: <none> 1036 cc = 2 1037 dst address difference: 0 dst len: 2000 1038 src address difference: 0 src len: 4 1039UTF8: f0 94 c0 80 1040UTF32: <none> 1041 cc = 2 1042 dst address difference: 0 dst len: 2000 1043 src address difference: 0 src len: 4 1044UTF8: f1 84 7f 80 1045UTF32: <none> 1046 cc = 2 1047 dst address difference: 0 dst len: 2000 1048 src address difference: 0 src len: 4 1049UTF8: f1 84 c0 80 1050UTF32: <none> 1051 cc = 2 1052 dst address difference: 0 dst len: 2000 1053 src address difference: 0 src len: 4 1054UTF8: f2 84 7f 80 1055UTF32: <none> 1056 cc = 2 1057 dst address difference: 0 dst len: 2000 1058 src address difference: 0 src len: 4 1059UTF8: f2 84 c0 80 1060UTF32: <none> 1061 cc = 2 1062 dst address difference: 0 dst len: 2000 1063 src address difference: 0 src len: 4 1064UTF8: f3 84 7f 80 1065UTF32: <none> 1066 cc = 2 1067 dst address difference: 0 dst len: 2000 1068 src address difference: 0 src len: 4 1069UTF8: f3 84 c0 80 1070UTF32: <none> 1071 cc = 2 1072 dst address difference: 0 dst len: 2000 1073 src address difference: 0 src len: 4 1074UTF8: f4 84 7f 80 1075UTF32: <none> 1076 cc = 2 1077 dst address difference: 0 dst len: 2000 1078 src address difference: 0 src len: 4 1079UTF8: f4 84 c0 80 1080UTF32: <none> 1081 cc = 2 1082 dst address difference: 0 dst len: 2000 1083 src address difference: 0 src len: 4 1084 1085----- Invalid characters (4th byte is invalid) ----- 1086UTF8: f0 94 80 7f 1087UTF32: <none> 1088 cc = 2 1089 dst address difference: 0 dst len: 2000 1090 src address difference: 0 src len: 4 1091UTF8: f0 94 80 c0 1092UTF32: <none> 1093 cc = 2 1094 dst address difference: 0 dst len: 2000 1095 src address difference: 0 src len: 4 1096UTF8: f1 84 80 7f 1097UTF32: <none> 1098 cc = 2 1099 dst address difference: 0 dst len: 2000 1100 src address difference: 0 src len: 4 1101UTF8: f1 84 80 c0 1102UTF32: <none> 1103 cc = 2 1104 dst address difference: 0 dst len: 2000 1105 src address difference: 0 src len: 4 1106UTF8: f2 84 80 7f 1107UTF32: <none> 1108 cc = 2 1109 dst address difference: 0 dst len: 2000 1110 src address difference: 0 src len: 4 1111UTF8: f2 84 80 c0 1112UTF32: <none> 1113 cc = 2 1114 dst address difference: 0 dst len: 2000 1115 src address difference: 0 src len: 4 1116UTF8: f3 84 80 7f 1117UTF32: <none> 1118 cc = 2 1119 dst address difference: 0 dst len: 2000 1120 src address difference: 0 src len: 4 1121UTF8: f3 84 80 c0 1122UTF32: <none> 1123 cc = 2 1124 dst address difference: 0 dst len: 2000 1125 src address difference: 0 src len: 4 1126UTF8: f4 84 80 7f 1127UTF32: <none> 1128 cc = 2 1129 dst address difference: 0 dst len: 2000 1130 src address difference: 0 src len: 4 1131UTF8: f4 84 80 c0 1132UTF32: <none> 1133 cc = 2 1134 dst address difference: 0 dst len: 2000 1135 src address difference: 0 src len: 4 1136 1137----- Invalid 2nd char AND output exhausted ----- 1138UTF8: f0 00 80 80 1139UTF32: <none> 1140 cc = 2 1141 dst address difference: 0 dst len: 1 1142 src address difference: 0 src len: 4 1143 1144----- Invalid 3rd char AND output exhausted ----- 1145UTF8: f0 aa 00 80 1146UTF32: <none> 1147 cc = 2 1148 dst address difference: 0 dst len: 3 1149 src address difference: 0 src len: 4 1150 1151----- Invalid 4th char AND output exhausted ----- 1152UTF8: f0 aa aa 00 1153UTF32: <none> 1154 cc = 2 1155 dst address difference: 0 dst len: 3 1156 src address difference: 0 src len: 4 1157 1158----- 1st char valid, 2nd char invalid ----- 1159UTF8: f0 aa aa aa f0 00 00 00 1160UTF32: 0002aaaa 1161 cc = 2 1162 dst address difference: 4 dst len: 1996 1163 src address difference: 4 src len: 4 1164 1165------------- test1 ---------------- 1166UTF8: <none> 1167UTF32: <none> 1168 cc = 0 1169 dst len: 0 1170 src len: 0 1171 1172------------- test2.1 ---------------- 1173UTF8: <none> 1174UTF32: <none> 1175 cc = 0 1176 dst address difference: 0 dst len: 2000 1177 src len: 0 1178UTF8: <none> 1179UTF32: <none> 1180 cc = 0 1181 dst address difference: 0 dst len: 2000 1182 src address difference: 0 src len: 0 1183UTF8: <none> 1184UTF32: <none> 1185 cc = 0 1186 dst address difference: 0 dst len: 2000 1187 src address difference: 0 src len: 0 1188UTF8: c2 1189UTF32: <none> 1190 cc = 0 1191 dst address difference: 0 dst len: 2000 1192 src address difference: 0 src len: 1 1193UTF8: <none> 1194UTF32: <none> 1195 cc = 0 1196 dst address difference: 0 dst len: 2000 1197 src address difference: 0 src len: 0 1198UTF8: e1 1199UTF32: <none> 1200 cc = 0 1201 dst address difference: 0 dst len: 2000 1202 src address difference: 0 src len: 1 1203UTF8: e1 80 1204UTF32: <none> 1205 cc = 0 1206 dst address difference: 0 dst len: 2000 1207 src address difference: 0 src len: 2 1208UTF8: <none> 1209UTF32: <none> 1210 cc = 0 1211 dst address difference: 0 dst len: 2000 1212 src address difference: 0 src len: 0 1213UTF8: f4 1214UTF32: <none> 1215 cc = 0 1216 dst address difference: 0 dst len: 2000 1217 src address difference: 0 src len: 1 1218UTF8: f4 80 1219UTF32: <none> 1220 cc = 0 1221 dst address difference: 0 dst len: 2000 1222 src address difference: 0 src len: 2 1223UTF8: f4 80 80 1224UTF32: <none> 1225 cc = 0 1226 dst address difference: 0 dst len: 2000 1227 src address difference: 0 src len: 3 1228 1229------------- test2.2 ---------------- 1230UTF8: 00 01 1231UTF32: 00000000 00000001 1232 cc = 0 1233 dst address difference: 8 dst len: 1992 1234 src address difference: 2 src len: 0 1235UTF8: c2 80 c2 81 c2 1236UTF32: 00000080 00000081 1237 cc = 0 1238 dst address difference: 8 dst len: 1992 1239 src address difference: 4 src len: 1 1240UTF8: e1 80 80 e1 80 81 1241UTF32: 00001000 00001001 1242 cc = 0 1243 dst address difference: 8 dst len: 1992 1244 src address difference: 6 src len: 0 1245UTF8: f4 80 80 80 f4 80 80 81 f4 1246UTF32: 00100000 00100001 1247 cc = 0 1248 dst address difference: 8 dst len: 1992 1249 src address difference: 8 src len: 1 1250 1251------------- test3.1 ---------------- 1252UTF8: 00 01 02 03 1253UTF32: <none> 1254 cc = 1 1255 dst len: 0 1256 src address difference: 0 src len: 4 1257UTF8: c2 80 c2 81 c2 82 c2 83 1258UTF32: <none> 1259 cc = 1 1260 dst len: 0 1261 src address difference: 0 src len: 8 1262UTF8: c2 80 c2 81 c2 82 c2 83 1263UTF32: <none> 1264 cc = 1 1265 dst len: 1 1266 src address difference: 0 src len: 8 1267UTF8: e1 80 80 e1 80 81 e1 80 82 e1 80 83 1268UTF32: <none> 1269 cc = 1 1270 dst len: 0 1271 src address difference: 0 src len: 12 1272UTF8: e1 80 80 e1 80 81 e1 80 82 e1 80 83 1273UTF32: <none> 1274 cc = 1 1275 dst len: 1 1276 src address difference: 0 src len: 12 1277UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83 1278UTF32: <none> 1279 cc = 1 1280 dst len: 0 1281 src address difference: 0 src len: 16 1282UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83 1283UTF32: <none> 1284 cc = 1 1285 dst len: 1 1286 src address difference: 0 src len: 16 1287UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83 1288UTF32: <none> 1289 cc = 1 1290 dst len: 2 1291 src address difference: 0 src len: 16 1292UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83 1293UTF32: <none> 1294 cc = 1 1295 dst len: 3 1296 src address difference: 0 src len: 16 1297 1298------------- test3.2 ---------------- 1299UTF8: 00 01 02 03 1300UTF32: 00000000 1301 cc = 1 1302 dst address difference: 4 dst len: 0 1303 src address difference: 1 src len: 3 1304UTF8: 00 01 02 03 c2 80 c2 81 1305UTF32: 00000000 1306 cc = 1 1307 dst address difference: 4 dst len: 1 1308 src address difference: 1 src len: 7 1309UTF8: 00 01 02 03 c2 80 c2 81 c2 82 c2 83 1310UTF32: 00000000 1311 cc = 1 1312 dst address difference: 4 dst len: 2 1313 src address difference: 1 src len: 11 1314UTF8: 00 01 02 03 c2 80 c2 81 c2 82 c2 83 e1 80 80 e1 1315UTF32: 00000000 1316 cc = 1 1317 dst address difference: 4 dst len: 3 1318 src address difference: 1 src len: 15 1319 1320------------- test4 ---------------- 1321UTF8: 01 c3 80 12 e1 90 93 23 f4 80 90 8a 34 c4 8c e1 91 94 c5 8a f4 80 90 8a c5 8a e1 91 94 f4 80 90 8a e1 91 94 1322UTF32: 00000001 000000c0 00000012 00001413 00000023 0010040a 00000034 0000010c 00001454 0000014a 0010040a 0000014a 00001454 0010040a 00001454 1323 cc = 0 1324 dst address difference: 60 dst len: 1940 1325 src address difference: 36 src len: 0 1326