2012-02-08 10 views
75

Para el diseño tenemos nuestro famoso texto "Lorem ipsum" para probar cómo se ve.¿Hay un conjunto de archivos "Lorem ipsums" para probar problemas de codificación de caracteres?

Lo que estoy buscando es un conjunto de archivos que contienen texto codificado con varias codificaciones diferentes que puedo usar en mis pruebas JUnit para probar algunos métodos que tratan la codificación de caracteres al leer archivos de texto.

Ejemplo:

Tener un codificada test-archivo ISO 8859-1 y una codificada test-archivo Windows-1252. El Windows-1252 tiene que desencadenar las diferencias en la región 80 - 9F . En otras palabras, debe contener al menos un carácter de esta región para distinguirlo de ISO 8859-1.

Quizás el mejor conjunto de archivos de prueba es aquel en el que el archivo de prueba para cada codificación contiene todos sus caracteres una vez. Pero tal vez no soy consciente de algo, a todos nos gusta esta codificación, ¿verdad? :-)

¿Existe un conjunto de archivos de prueba para problemas de codificación de caracteres?

+1

+1: Acabo de pasar bastante tiempo implementando un Decodificador UTF-8. Manejar todas las cajas de esquina requiere más pruebas de unidad de lo que piensas. – Raedwald

+3

"Texto codificado con varias codificaciones diferentes": para una buena cobertura, también desea secuencias de bytes de muestra que contengan bytes no válidos. Según la página de Wikipedia UTF-8, el manejo inadecuado de esos casos ha introducido vulnerabilidades de seguridad en algunos productos de alto perfil. – Raedwald

+0

@Raedwald Por supuesto, ese es un buen punto. No estaba enterado de esto. En mi opinión, una razón más para un maduro conjunto de pruebas para problemas de codificación. No tiene que ser un conjunto de archivos. También puede ser una biblioteca que proporciona datos de prueba que se pueden usar en las pruebas JUnit. Por ejemplo, puede proporcionar secuencias de bytes críticas/inválidas para conjuntos de caracteres comunes y cadenas de referencia para la comparación después de decodificar secuencias de bytes de muestra. Solo algunos pensamientos y me pregunto cómo se ha probado esta codificación en todas las libs de ... –

Respuesta

21

¿Qué hay de tratar de utilizar los archivos de baño ICU de prueba? No sé si son lo que necesita para su prueba, pero parecen tener archivos de mapeo UTF/UTF bastante completos al menos: Link to the repo for ICU test files

+0

+1 mi favorito hasta ahora. Leo en la documentación durante 1 hora y parece proporcionar todo lo que necesito, al menos para cosas relacionadas con Unicode. –

+0

Creo que esta es realmente la mejor respuesta hasta ahora. Lo acepté y espero que consigas una buena reputación por ello. Si respondí una semana antes, estoy seguro de que habría obtenido una puntuación mucho mejor en comparación con otras respuestas aquí. ¡Gracias de todos modos! –

39

El artículo de Wikipedia en diacritics es bastante completo, desafortunadamente tiene que extraer estos caracteres manualmente. También puede haber algunos mnemotécnicos para cada idioma. Por ejemplo, en Polonia usamos:

Zażółć Gesla JAZN

que contiene todas las 9 diacríticos polacas en una frase correcta. Otra utilidad indirecta de búsqueda son pangrams: oraciones usando cada letra del alfabeto al menos una vez:

  • en español, "El veloz murciélago hindú comia del feliz cardillo y kiwi La cigüeña tocaba el saxofón detras. del palenque de paja. "(las 27 letras y signos diacríticos).

  • en ruso, "Съешь же ещё этих мягких французских булок, да выпей чаю" (todos los rusos 33 letras del alfabeto cirílico).

List of pangrams contiene un resumen exhaustivo. Alguien se preocupa de envolver esto de una manera simple:

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

library?

+1

Sin duda, esta es una respuesta de +1. Esperaré un poco con la esperanza de que haya realmente un buen conjunto de archivos de prueba. Debido a que hay codificaciones construidas sobre otras, creo que sería muy bueno tener archivos de prueba para cada codificación que active las diferencias. Pero tal vez estoy equivocado y hay buenas razones por las que no existen o eso. –

2

Bueno, había usado una herramienta en línea para crear mis conjuntos de caracteres de texto de Lorem Ipsum. Creo que puede ayudarte. No tengo uno que tenga todos los diferentes conjuntos de caracteres en una sola página.

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

+3

* Lorem ipsum * consta de solo caracteres latinos, como en latín. Esto no es lo que se pregunta aquí. Por cierto: http://repo1.maven.org/maven2/org/codeswarm/lipsum/1.0/ –

8

No sé de cualquier documento de texto completo, pero si se puede comenzar con una simple visión general de todos los juegos de caracteres hay algunos archivos disponibles en el ftp.unicode.org server

Aquí está WINDOWS-1252 por ejemplo. La primera columna es el valor de carácter hexadecimal, y el segundo el valor de Unicode.

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

+0

+1 Gracias por su esfuerzo. Recurso muy interesante de archivos. –

Cuestiones relacionadas