是否有一组用于测试字符编码问题的“ Lorem ipsums”文件?


85

对于布局,我们有著名的“ Lorem ipsum”文本来测试其外观。

我要寻找的是一组包含Text的文件,这些Text编码有几种不同的编码,我可以在JUnit测试中使用它们来测试读取文本文件时处理字符编码的某些方法。

例:

具有ISO 8859-1编码的测试文件和Windows-1252编码的测试文件。Windows-1252必须触发区域80 16 – 9F 16中的差异。换句话说,它必须至少包含此区域的一个字符,才能与ISO 8859-1区别开来。

也许最好的测试文件集是每种编码的测试文件一次包含所有字符。但是也许我不了解某件事-我们都喜欢这种编码的东西,对不对?:-)

是否有这样一组用于字符编码问题的测试文件?


1
+1:我刚刚花了很多时间来实现UTF-8解码器。处理所有极端情况需要比您想象的更多的单元测试。
拉德瓦尔德

4
“使用几种不同编码方式编码的文本”:为了获得良好的覆盖率,您还需要包含无效字节的样本字节序列。根据UTF-8维基百科页面的说法,对这些案例的处理不当已在某些知名产品中引入了安全漏洞。
Raedwald

@Raedwald当然,这很不错。我不知道这一点。我认为,成熟的测试套件可以为编码问题提供更多的理由。它不必是一组文件。它也可以是提供可在JUnit测试中使用的测试数据的库。例如,它可以为公共字符集和参考字符串提供关键/无效的字节序列,以便在解码样本字节序列后进行比较。只是有些想法,我想知道这种编码方式是如何在所有库中经过测试的……
Fabian Barney 2012年

Answers:


26

尝试使用ICU测试套件文件如何?我不知道它们是否是测试所需要的,但它们似乎至少具有完整的UTF映射文件/至UTF映射文件:链接到ICU测试文件的存储库


到目前为止,我最喜欢的是+1。我在文档中阅读了1个小时,它似乎可以提供我所需的一切-至少是与Unicode相关的东西。
Fabian Barney 2012年

我认为到目前为止,这确实是最好的答案。我接受了它,希望您能因此赢得声誉。如果一个星期前回答,我相信它比这里的其他答案得分要好得多。不管怎样,谢谢!
Fabian Barney

41

维基百科上有关变音符号的文章相当全面,不幸的是,您必须手动提取这些字符。每种语言也可能存在一些助记符。例如在波兰语中,我们使用:

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

在一句正确的句子中包含所有9个波兰音调符号。另一个有用的搜索提示是pangrams句子中至少每个字母使用一次

  • 在西班牙语中,“ El velozmurciélagohindúcomíafeliz cardillo y kiwi

  • 俄语中,“ Съешьжеэтихмягкихфранцузскихбулок,давыпейчаю ”(所有33个俄语西里尔字母)。

Pangram列表包含详尽的摘要。任何人都希望将其包装为简单的内容:

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

图书馆?


1
当然,这是+1答案。我会稍等一下,希望那里确实有一套经过深思熟虑的测试文件。因为有些编码是建立在其他编码之上的,所以我认为为每种编码触发差异的测试文件会很好。但是,也许我是错的,并且有充分的理由说明为什么它们不存在。
法比安·巴尼


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.