Có tập hợp các tệp “Lorem ipsums” để kiểm tra các vấn đề mã hóa ký tự không?


85

Để bố trí, chúng tôi có văn bản "Lorem ipsum" nổi tiếng để kiểm tra xem nó trông như thế nào.

Những gì tôi đang tìm kiếm là một tập hợp các tệp chứa Văn bản được mã hóa bằng một số mã hóa khác nhau mà tôi có thể sử dụng trong các bài kiểm tra JUnit của mình để kiểm tra một số phương pháp xử lý mã hóa ký tự khi đọc tệp văn bản.

Thí dụ:

ISO 8859-1tệp Windows-1252thử nghiệm được mã hóa và tệp thử nghiệm được mã hóa. Windows-1252 phải kích hoạt sự khác biệt trong vùng 80 16 - 9F 16 . Nói cách khác, nó phải chứa ít nhất một ký tự của vùng này để phân biệt với ISO 8859-1.

Có thể bộ tệp thử nghiệm tốt nhất là nơi tệp thử nghiệm cho mỗi bảng mã chứa tất cả các ký tự của nó một lần. Nhưng có lẽ tôi không biết về sth - tất cả chúng ta đều thích công cụ mã hóa này, phải không? :-)

Có một tập hợp các tệp thử nghiệm cho các vấn đề mã hóa ký tự ngoài đó không?


1
+1: Tôi vừa dành khá nhiều thời gian để triển khai bộ giải mã UTF-8. Xử lý tất cả các trường hợp góc đòi hỏi nhiều bài kiểm tra đơn vị hơn bạn có thể nghĩ.
Raedwald

4
"Văn bản được mã hóa bằng một số mã hóa khác nhau": để có độ phủ tốt, bạn cũng muốn các chuỗi byte mẫu chứa các byte không hợp lệ. Theo trang Wikipedia UTF-8, việc xử lý sai các trường hợp đó đã tạo ra các lỗ hổng bảo mật trong một số sản phẩm cấu hình cao.
Raedwald

@Raedwald Tất nhiên, đó là một điểm tốt. Tôi đã không nhận thức được điều này. Theo tôi, chỉ có một lý do nữa cho một bộ thử nghiệm trưởng thành cho các vấn đề mã hóa. Nó không nhất thiết phải là một tập hợp các tệp. Nó cũng có thể là một thư viện cung cấp dữ liệu thử nghiệm có thể được sử dụng trong các thử nghiệm JUnit. Ví dụ, nó có thể cung cấp các chuỗi byte quan trọng / không hợp lệ cho các bảng mã thông thường và các Chuỗi tham chiếu để so sánh sau khi giải mã chuỗi byte mẫu. Chỉ cần một vài suy nghĩ và tôi tự hỏi như thế nào công cụ này mã hóa đã được thử nghiệm trong tất cả các libs xung quanh ...
Fabian Barney

Câu trả lời:


26

Làm thế nào về việc cố gắng sử dụng các tệp bộ kiểm tra ICU ? Tôi không biết liệu chúng có phải là thứ bạn cần cho bài kiểm tra của mình hay không, nhưng ít nhất chúng dường như có các tệp ánh xạ từ / đến UTF khá hoàn chỉnh: Liên kết đến kho lưu trữ các tệp kiểm tra ICU


+1 mục yêu thích của tôi cho đến nay. Tôi đã đọc tài liệu trong 1 giờ và nó dường như cung cấp mọi thứ tôi cần - ít nhất là đối với những thứ liên quan đến unicode.
Fabian Barney

Tôi nghĩ rằng đây thực sự là câu trả lời tốt nhất cho đến nay. Tôi đã chấp nhận nó và hy vọng bạn sẽ nhận được một số danh tiếng cho nó. Nếu được trả lời sớm hơn một tuần, tôi chắc chắn rằng nó sẽ đạt điểm cao hơn nhiều so với các câu trả lời khác ở đây. Dù sao cũng cảm ơn!
Fabian Barney

41

Bài viết Wikipedia về dấu phụ khá toàn diện, tiếc là bạn phải trích xuất các ký tự này theo cách thủ công. Ngoài ra, có thể tồn tại một số phương pháp ghi nhớ cho mỗi ngôn ngữ. Ví dụ bằng tiếng Ba Lan, chúng tôi sử dụng:

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

trong đó có tất cả 9 dấu phụ tiếng Ba Lan trong một câu đúng. Một gợi ý tìm kiếm hữu ích khác là pangrams : các câu sử dụng mọi chữ cái trong bảng chữ cái ít nhất một lần :

  • bằng tiếng Tây Ban Nha, " 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. " (tất cả 27 chữ cái và dấu phụ).

  • bằng tiếng Nga, " Съешь же ещё этих мягких французских булок, да выпей чаю " (tất cả 33 chữ cái trong bảng chữ cái Kirin Nga).

Danh sách các pangram chứa một bản tóm tắt đầy đủ. Bất cứ ai cũng quan tâm đến điều này một cách đơn giản:

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

thư viện?


1
Chắc chắn đây là câu trả lời +1. Tôi sẽ đợi một chút với hy vọng rằng có một bộ hồ sơ kiểm tra thực sự được chu đáo. Bởi vì có những mã hóa được xây dựng dựa trên những mã hóa khác, v.v. Tôi nghĩ sẽ rất tốt nếu có các tệp thử nghiệm cho mỗi mã hóa gây ra sự khác biệt. Nhưng có lẽ tôi đã sai và có những lý do chính đáng khiến chúng không tồn tại hoặc như vậy.
Fabian Barney

8

Tôi không biết về bất kỳ tài liệu văn bản hoàn chỉnh nào, nhưng nếu bạn có thể bắt đầu với tổng quan đơn giản về tất cả các bộ ký tự, có một số tệp có sẵn tại máy chủ ftp.unicode.org

Đây là WINDOWS-1252 chẳng hạn. Cột đầu tiên là giá trị ký tự thập lục phân và cột thứ hai là giá trị unicode.

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


+1 Cảm ơn vì nỗ lực của bạn. Tài nguyên rất thú vị của các tập tin.
Fabian Barney

1

Chà, tôi đã sử dụng một công cụ trực tuyến để tạo bộ ký tự văn bản của mình từ Lorem Ipsum. Tôi tin rằng nó có thể giúp bạn. Tôi không có cái nào có tất cả các bảng mã khác nhau trong một trang.

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


4
Lorem ipsum chỉ bao gồm các ký tự Latinh, giống như trong tiếng Latinh. Đây không phải là những gì đang được hỏi ở đây. BTW: repo1.maven.org/maven2/org/codeswarm/lipsum/1.0
Tomasz Nurkiewicz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.