Чи існує набір файлів “Lorem ipsums” для тестування питань кодування символів?


85

Для компонування маємо наш відомий текст "Lorem ipsum", щоб перевірити, як він виглядає.

Я шукаю набір файлів, що містять Текст, закодований декількома різними кодуваннями, які я можу використовувати у своїх тестах JUnit для тестування деяких методів, що мають справу з кодуванням символів під час читання текстових файлів.

Приклад:

Наявність ISO 8859-1закодованого тестового файлу та Windows-1252закодованого тестового файлу. Windows-1252 повинен викликати відмінності в регіоні 80 16 - 9F 16 . Іншими словами, він повинен містити принаймні один символ цієї області, щоб відрізняти його від ISO 8859-1.

Можливо, найкращим набором тестових файлів є той, де тестовий файл для кожного кодування містить один раз усі його символи. Але, можливо, я не знаю про що - нам усім подобається це кодування, так? :-)

Чи існує такий набір тестових файлів для питань кодування символів?


1
+1: Я щойно витратив досить багато часу на впровадження декодера UTF-8. Для роботи з усіма кутовими кейсами потрібно більше одиничних тестів, ніж ви можете подумати.
Raedwald,

4
"Текст, кодований декількома різними кодуваннями": для гарного охоплення вам також потрібні зразки послідовностей байтів, що містять недійсні байти. Згідно зі сторінкою UTF-8 у Вікіпедії, неправильна робота з цими справами призвела до уразливостей у безпеці деяких важливих продуктів.
Raedwald

@Raedwald Звичайно, це хороший момент. Я цього не знав. На мій погляд, лише ще одна причина для зрілого набору тестів для питань кодування. Це не повинен бути набір файлів. Це також може бути бібліотека, що надає дані тестів, які можна використовувати в тестах JUnit. Наприклад, він може надати критичні / недійсні послідовності байтів для загальних наборів символів та посилальних рядків для порівняння після декодування зразків послідовностей байтів. Лише деякі думки, і мені цікаво, як цей матеріал кодування був протестований у всіх сферах навколо ...
Фабіан Барні

Відповіді:


26

Як щодо спроби використовувати файли тестового набору ICU ? Я не знаю, чи саме вони вам потрібні для тесту, але, схоже, вони мають досить повні принаймні файли зіставлення від / до UTF: Посилання на репо для тестових файлів ICU


+1 моєму улюбленому поки що. Я читаю документацію протягом 1 години, і, схоже, я надаю все, що мені потрібно - принаймні для матеріалів, пов’язаних з Unicode.
Фабіан Барні,

Я думаю, що це справді найкраща відповідь на даний момент. Я прийняв це і сподіваюся, ти отримаєш за це якусь репутацію. Якби відповіли тижнем раніше, я впевнений, що він би набрав набагато кращі результати порівняно з іншими відповідями тут. Все одно дякую!
Фабіан Барні,

41

Стаття Вікіпедії про діакритику є досить вичерпною, на жаль, вам доведеться витягувати ці символи вручну. Також для кожної мови може існувати кілька мнемотехніки. Наприклад, польською мовою ми використовуємо:

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

який містить усі 9 польських діакритиків в одному правильному реченні. Ще одним корисним підказкою для пошуку є панграми : речення, що принаймні один раз використовують кожну літеру алфавіту :

  • іспанською мовою: " El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja. " (усі 27 букв та діакритики).

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

Список панграм містить вичерпний підсумок. Хто завгодно оберне це простим:

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

бібліотека?


1
Напевно це відповідь +1. Зачекаю трохи в надії, що там дійсно є продуманий набір тестових файлів. Тому що є кодування, побудовані поверх інших і т.д. Я думаю, було б дуже добре мати тестові файли для кожного кодування, що викликають різницю. Але, можливо, я помиляюся, і є вагомі причини, чому вони не існують чи ні.
Фабіан Барні

8

Я не знаю жодних повних текстових документів, але якщо ви можете розпочати з простого огляду всіх наборів символів, є деякі файли, доступні на сервері ftp.unicode.org

Ось, наприклад, WINDOWS-1252. Перший стовпець - це шістнадцяткове значення символу, а другий - значення юнікоду.

ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT


+1 Дякую за ваші зусилля. Дуже цікавий ресурс файлів.
Фабіан Барні,

1

Ну, я використовував Інтернет-інструмент для створення своїх текстових наборів символів від Lorem Ipsum. Я вірю, що це може вам допомогти. У мене немає такої, яка б містила всі різні набори символів на одній сторінці.

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


4
Lorem ipsum складається лише з латинських символів, як і в латинській мові. Тут про це не просять. До речі: repo1.maven.org/maven2/org/codeswarm/lipsum/1.0
Томаш Нуркевич
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.