Karakter kodlama sorunlarını test etmek için bir dizi "Lorem ipsums" dosyası var mı?


85

Tasarım için, nasıl göründüğünü test etmek için ünlü "Lorem ipsum" metnimiz var.

Aradığım şey, metin dosyalarını okurken karakter kodlamayla ilgili bazı yöntemleri test etmek için JUnit testlerimde kullanabileceğim, birkaç farklı kodlama ile kodlanmış Metin içeren bir dizi dosya.

Misal:

Bir Having ISO 8859-1kodlanmış test dosyası ve bir Windows-1252kodlanmış test dosyası. Windows-1252, 80 16 - 9F 16 bölgesindeki farklılıkları tetiklemelidir . Başka bir deyişle, ISO 8859-1'den ayırt edilebilmesi için bu bölgenin en az bir karakterini içermesi gerekir.

Belki de en iyi test dosyaları seti, her kodlama için test dosyasının tüm karakterlerini bir kez içerdiği yerdir. Ama belki bir şeyin farkında değilim - hepimiz bu kodlama işini seviyoruz, değil mi? :-)

Orada karakter kodlama sorunları için bir dizi test dosyası var mı?


1
+1: UTF-8 kod çözücüyü uygulamak için epey zaman harcadım. Tüm köşe vakalarını ele almak düşündüğünüzden daha fazla birim testi gerektirir.
Raedwald

4
"Birkaç farklı kodlama ile kodlanmış metin": iyi bir kapsam için, geçersiz baytlar içeren örnek bayt dizileri de istersiniz. UTF-8 Wikipedia sayfasına göre, bu vakaların yanlış ele alınması bazı yüksek profilli ürünlerde güvenlik açıklarına neden oldu.
Raedwald

@Raedwald Elbette, bu iyi bir nokta. Bunun farkında değildim. Bence kodlama sorunları için olgun bir test paketi için sadece bir neden daha. Bir dizi dosya olması gerekmez. JUnit testlerinde kullanılabilecek test verilerini sağlayan bir kitaplık da olabilir. Örneğin, ortak karakter kümeleri için kritik / geçersiz bayt dizileri ve örnek bayt dizilerinin kodunu çözdükten sonra karşılaştırma için referans Dizeleri sağlayabilir. Bazı düşüncelerim ve bu kodlama maddesinin etraftaki tüm kitaplarda nasıl test edildiğini merak ediyorum ...
Fabian Barney

Yanıtlar:


26

YBÜ test paketi dosyalarını kullanmaya ne dersiniz ? Testiniz için ihtiyacınız olan şey bunlar mı bilmiyorum, ancak en azından UTF eşleme dosyalarından / dosyalarından oldukça eksiksiz görünüyorlar: YBÜ test dosyaları için depoya bağlantı


Şimdiye kadarki favorimi + 1'leyin. Belgeleri 1 saat boyunca okudum ve ihtiyacım olan her şeyi sağlıyor gibi görünüyor - en azından unicode ile ilgili şeyler için.
Fabian Barney

Bence bu gerçekten şimdiye kadarki en iyi cevap. Kabul ettim ve umarım bunun için bir itibar kazanırsın. Bir hafta önce cevap verseydim, eminim buradaki diğer cevaplara kıyasla çok daha iyi puan alırdı. Neyse teşekkürler!
Fabian Barney

42

Aksanlarla ilgili Wikipedia makalesi oldukça kapsamlı, maalesef bu karakterleri manuel olarak çıkarmanız gerekiyor. Ayrıca her dil için bazı anımsatıcılar olabilir. Örneğin Lehçe'de kullanıyoruz:

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

tek bir doğru cümlede 9 Polonyalı aksanın hepsini içerir. Başka bir yararlı arama ipucu da pangramlardır : alfabenin her harfini en az bir kez kullanan cümleler :

  • İspanyolca " 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 harf ve aksan).

  • Rusça olarak, " Съешь же ещё этих мягких французских булок, да выпей чаю " (33 Rus Kiril alfabesi harfinin tümü).

Pangramların listesi kapsamlı bir özet içerir. Bunu basit bir şekilde özetlemek isteyenler:

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

kütüphane?


1
Elbette bu bir +1 yanıtı. Orada gerçekten iyi düşünülmüş bir dizi test dosyası olmasını ümit ederek biraz bekleyeceğim. Çünkü diğerlerinin üzerine inşa edilen kodlamalar vardır. Farklılıkları tetikleyen her kodlama için test dosyalarına sahip olmanın çok iyi olacağını düşünüyorum. Ama belki yanılıyorum ve var olmadıklarının iyi nedenleri var.
Fabian Barney


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.