2012-02-08 18 views
75

Do układania mamy nasz słynny tekst "Lorem ipsum", aby sprawdzić jak to wygląda.Czy istnieje zestaw plików "Lorem ipsums" do testowania problemów z kodowaniem znaków?

Czego szukam to zbiór plików zawierających Tekst zakodowany przy użyciu kilku różnych kodowań, których mogę używać w moich testach JUnit do testowania niektórych metod, które mają do czynienia z kodowaniem znaków podczas odczytu plików tekstowych.

przykład:

O ISO 8859-1 zakodowany testowy plik i test-Windows-1252 zakodowanego pliku. Windows-1252 musiał wywołać różnice w regionie 80 - 9F . Innymi słowy musi zawierać co najmniej jeden znak tego regionu, aby odróżnić go od ISO 8859-1.

Może najlepszy zestaw testowych plików jest to, że gdy test-file dla każdego kodowania zawiera wszystkie jego postacie raz. Ale może nie jestem świadomy czegoś - wszyscy lubimy to kodowanie, prawda? :-)

Czy istnieje taki zestaw plików testowych do kwestii kodowania znaków tam?

+1

+1: Spędziłem sporo czasu na implementacji Dekoder UTF-8. Obsługa wszystkich przypadków narożnych wymaga więcej testów jednostkowych, niż mogłoby się wydawać. – Raedwald

+3

"Tekst zakodowany z kilkoma różnymi kodowaniami": dla dobrego pokrycia potrzebne są również sekwencje bajtów próbek, które zawierają nieprawidłowe bajty. Według strony Wikipedii UTF-8, niewłaściwe obchodzenie się z tymi sprawami wprowadziło luki w zabezpieczeniach niektórych produktów o wysokim profilu. – Raedwald

+0

@Raedwald Oczywiście, o to chodzi. Nie wiedziałem o tym. Moim zdaniem to tylko jeden powód dojrzałego zestawu testów do kodowania problemów. To nie musi być zbiór plików. Może to być również biblioteka udostępniająca dane testowe, które można wykorzystać w testach JUnit. Na przykład może dostarczyć krytyczne/niepoprawne sekwencje bajtów dla wspólnych zestawów znaków i ciągów referencyjnych do porównania po zdekodowaniu sekwencji bajtów próbek. Tylko kilka myśli i zastanawiam się, jak te kodowanie zostało przetestowane we wszystkich bibliotekach ... –

Odpowiedz

21

Jak o próbie użycia plików łazienką ICU test? Nie wiem, czy są one potrzebne do testu, ale wygląda na to, że mają całkiem kompletne pliki do/do plików UTF co najmniej: Link to the repo for ICU test files

+0

+1 mój ulubiony do tej pory. Czytam w dokumentacji przez 1 godzinę i wydaje mi się, że zapewnia wszystko, czego potrzebuję - przynajmniej w przypadku elementów związanych z Unikodem. –

+0

Myślę, że to naprawdę najlepsza odpowiedź. Przyjąłem to i mam nadzieję, że zyskasz reputację. Jeśli odpowiedziałabym tydzień wcześniej, jestem pewna, że ​​uzyskałby znacznie lepszy wynik w porównaniu z innymi odpowiedziami tutaj. W każdym razie dzięki! –

39

Artykuł w Wikipedii o diacritics jest dość obszerny, niestety trzeba wyodrębnić te znaki ręcznie. Również może istnieć kilka mnemoników dla każdego języka. Na przykład w języku polskim używamy:

Zażółć gęślą jaźń

który zawiera wszystkie 9 polskich liter w jednym poprawnego zdania. Inną użyteczną wskazówkę wyszukiwania są pangrams: zdania wykorzystujące każdą literę alfabetu przynajmniej raz:

  • w języku hiszpańskim, "El Veloz murciélago hindú comía feliz Cardillo y kiwi La Cigüeña tocaba el saxofón Detras. del palenque de paja: "(wszystkie 27 liter i znaków diakrytycznych).

  • po rosyjsku "Съешь же ещё этих мягких французских булок, да выпей чаю" (wszystkie 33 cyrylicy rosyjskiej litery alfabetu).

List of pangrams zawiera wyczerpujący podsumowanie. Czy ktoś ma ochotę zawrzeć to w prosty sposób:

public interface NationalCharacters { 
    String spanish(); 
    String russian(); 
    //... 
} 

biblioteka?

+1

Na pewno jest to odpowiedź +1. Poczekam trochę z nadzieją, że istnieje naprawdę dobrze przemyślany zbiór plików testowych. Ponieważ istnieją kodowania oparte na innych itp. Myślę, że byłoby bardzo dobrze mieć pliki testowe dla każdego kodowania wyzwalającego różnice. Ale może się mylę i istnieją dobre powody, dla których nie istnieją. –

2

Cóż, użył narzędzie online do tworzenia mojego tekstu zestawy char z Lorem Ipsum. Wierzę, że to może ci pomóc. Nie mam takiego, który ma wszystkie różne zestawy znaków na jednej stronie.

http://generator.lorem-ipsum.info/

+3

* Lorem ipsum * składa się wyłącznie z łacińskich znaków, tak jak w języku łacińskim. Nie o to tu pyta. BTW: http://repo1.maven.org/maven2/org/codeswarm/lipsum/1.0/ –

Powiązane problemy