Testuję, jak część mojego kodu obsługuje złe dane i potrzebuję kilku serii bajtów, które mają nieprawidłowy kod UTF-8.
Czy możesz opublikować jakieś, a najlepiej, wyjaśnienie, dlaczego są złe / gdzie je masz?
unit-testing
utf-8
twk
źródło
źródło
Odpowiedzi:
Spójrz na możliwości dekodera UTF-8 Markusa Kuhna i plik testu warunków skrajnych
Znajdziesz przykłady wielu nieprawidłowości UTF-8, w tym samotne bajty początkowe, brakujące bajty kontynuacji, zbyt długie sekwencje itp.
źródło
W PHP:
Z http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php#54805
źródło
, ̆ był szczególnie zły. Widzę to jako połączone na Ubuntu.
przecinek-breve
źródło
Koncepcję wzorców źle uformowanych sekwencji bajtów można uzyskać z tabeli prawidłowo utworzonych sekwencji bajtów. Zobacz „ Tabela 3-7. Dobrze uformowane sekwencje bajtów UTF-8 ” w standardzie Unicode 6.2.
Oto przykłady wygenerowane z U + 24B62. Użyłem ich do zgłoszenia błędu: Bug # 65045 mb_convert_encoding psuje dobrze sformułowany znak
Nadmierne uproszczenie zakresu końcowych bajtów ([0x80, 0xBF]) można zobaczyć w różnych bibliotekach.
źródło
Fuzz Testing - generuje losową sekwencję oktetów. Najprawdopodobniej wcześniej niż później dostaniesz nielegalne sekwencje.
źródło
srand()
rada to dobry pomysł, może pomóc innym tutaj.