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