2012-02-08 1 views
75

Per il layout abbiamo il nostro famoso testo "Lorem ipsum" per testare l'aspetto.Esiste un set di file "Lorem ipsums" per testare i problemi di codifica dei caratteri?

Quello che sto cercando è un insieme di file contenenti testo codificato con diverse codifiche che posso utilizzare nei miei test JUnit per testare alcuni metodi che si occupano della codifica dei caratteri durante la lettura di file di testo.

Esempio:

Avere un ISO 8859-1 codificato test-file e un test-file codificato Windows-1252. Windows-1252 deve attivare le differenze nella regione 80 - 9F . In altre parole, deve contenere almeno un carattere di questa regione per distinguerlo dall'ISO 8859-1.

Forse il miglior set di file di test è quello in cui il file di test per ogni codifica contiene tutti i suoi caratteri una volta. Ma forse non sono a conoscenza di sth - a tutti noi piace questa roba di codifica, giusto? :-)

Esiste un insieme di file di test per problemi di codifica dei caratteri?

+1

+1: ho appena trascorso un po 'di tempo implementando un Decodificatore UTF-8. Gestire tutte le casse d'angolo richiede più test unitari di quanto si possa pensare. – Raedwald

+3

"Testo codificato con diverse codifiche diverse": per una buona copertura si desidera anche sequenze di byte campione contenenti byte non validi. Secondo la pagina di Wikipedia su UTF-8, l'errata gestione di questi casi ha introdotto vulnerabilità di sicurezza in alcuni prodotti di alto profilo. – Raedwald

+0

@Raedwald Ovviamente, questo è un buon punto. Non ero a conoscenza di questo. A mio parere, un motivo in più per una suite di test matura per problemi di codifica. Non deve essere un insieme di file. Può anche essere una libreria che fornisce dati di test che possono essere utilizzati nei test JUnit. Ad esempio, può fornire sequenze di byte critiche/non valide per set di caratteri comuni e stringhe di riferimento per il confronto dopo la decodifica di sequenze di byte di esempio. Solo alcuni pensieri e mi chiedo come questa roba di codifica sia stata testata in tutte le librerie ... –

risposta

21

ne dite di provare a utilizzare i file privati ​​ICU di prova? Non so se sono quello che ti serve per il tuo test, ma sembrano avere abbastanza completo da/a file di mappatura UTF almeno: Link to the repo for ICU test files

+0

+1 il mio preferito finora. Leggo nella documentazione per 1 ora e sembra fornire tutto ciò di cui ho bisogno, almeno per le cose correlate all'unicode. –

+0

Penso che questa sia davvero la migliore risposta finora. L'ho accettato e spero che avrai una certa reputazione per questo. Se avessi risposto una settimana prima, sono sicuro che avrebbe segnato molto meglio rispetto ad altre risposte qui. Comunque grazie! –

39

L'articolo di Wikipedia su diacritics è piuttosto completo, sfortunatamente è necessario estrarre questi caratteri manualmente. Inoltre potrebbero esistere alcuni mnemonici per ogni lingua. Per esempio in polacco usiamo:

Zażółć gęślą jazn

che contiene tutti i 9 segni diacritici polacchi in una sola frase corretta. Un'altra ricerca utile suggerimento sono pangrams: frasi usando ogni lettera dell'alfabeto, almeno una volta:

  • in spagnolo, "El Veloz murciélago hindú Comia feliz cardillo y kiwi La Cigüeña tocaba el saxofón detras. del palenque de paja. "(tutte le 27 lettere e segni diacritici).

  • in russo, "Съешь же ещё этих мягких французских булок, да выпей чаю" (tutti i 33 russi in cirillico lettere dell'alfabeto).

List of pangrams contiene una sintesi esaustiva. Chiunque si preoccupi di avvolgere questo in un semplice:

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

libreria?

+1

Di sicuro questa è una risposta a +1. Aspetterò un po 'nella speranza che ci sia davvero una serie ben pensata di file di test là fuori. Perché ci sono le codifiche costruite su altri ecc. Penso che sarebbe molto bello avere i file di test per ogni codifica che innesca le differenze. Ma forse mi sbaglio e ci sono buone ragioni per cui non esistono o così. –

2

Bene, avevo usato uno strumento online per creare i miei set di caratteri di testo da Lorem Ipsum. Credo che possa aiutarti. Non ne ho uno che abbia tutti i diversi set di caratteri in una singola pagina.

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

+3

* Lorem ipsum * è composto solo da caratteri latini, come in latino. Questo non è ciò che viene chiesto qui. BTW: http://repo1.maven.org/maven2/org/codeswarm/lipsum/1.0/ –