Tôi có một tập tin văn bản POD đơn giản:Tại sao perldoc đánh giá 'Münster' là 'Muenster'
$ cat test.pod
=encoding UTF-8
Münster
Nó được mã hóa theo UTF-8, theo bãi này hex đen của file:
00000000 3d 65 6e 63 6f 64 69 6e 67 20 55 54 46 2d 38 0a |=encoding UTF-8.|
00000010 0a 4d c3 bc 6e 73 74 65 72 0a |.M..nster.|
0000001a
Chữ "ü" đang được mã hóa dưới dạng hai byte C3 và BC.
Nhưng khi tôi chạy perldoc
trên tệp, nó sẽ biến các ký tự UTF-8 được định dạng đáng yêu của tôi thành ASCII.
Hơn nữa, nó xử lý chính xác quy ước tiếng Đức đại diện cho "ü" là "ue".
$ perldoc test.pod | cat
TEST(1) User Contributed Perl Documentation TEST(1)
Muenster
perl v5.16.3 2014-06-10 TEST(1)
Tại sao lại thực hiện việc này?
Có một tuyên bố bổ sung nào tôi có thể đưa vào tệp của mình để ngăn không cho nó xảy ra không?
Sau khi điều tra bổ sung với App::perlbrew
tôi đã tìm thấy sự khác biệt xuất phát từ việc có một phiên bản đặc biệt của Pod :: perldoc.
perl-5.10.1 3.14_04 Muenster
perl-5.12.5 3.15_02 Muenster
perl-5.14.4 3.15_04 Muenster
perl-5.16.2 3.17 Münster
perl-5.16.3 3.19 Muenster
perl-5.16.3 3.17 Münster
perl-5.17.3 3.17 Münster
perl-5.18.0 3.19 Muenster
perl-5.18.1 3.23 Münster
Tuy nhiên tôi vẫn muốn, nếu có thể, cách tạo Pod :: Perldoc 3.14, 3.15 và 3.19 hoạt động "chính xác".
Thú vị là theo https://metacpan.org/source/MALLEN/Pod-Perldoc-3.23/Changes RT # 39000 đã được sửa trong 3.15_12 nhưng tôi thấy hồi quy trong 3.19. – Kaoru
Giải pháp mà tôi đã giải quyết là thêm «Pod :: Perldoc 3.21' làm phụ thuộc, nên đảm bảo rằng bất kỳ ai sử dụng mô-đun đều có phiên bản« perldoc' gần đây để đọc POD! – Kaoru
Vâng, có gì đó lạ đang nấu ở đó. Sử dụng phiên bản mới nhất là những gì tôi có thể đề xuất. –