Encode canonical charset names differ from Perl, breaking IO::HTML
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 65/100
Research direction
Start with the PerlOnJava Encode implementation and its existing compatibility tests, then reproduce the canonical-name failures on both the JVM and interpreter backends. Add focused regression coverage for the ISO-8859-15 and cp1252 mappings, and verify the IO::HTML 1.004 suite passes on both backends.
Written by the indexing model from the issue text.
Description
Summary
IO::HTML 1.004 passes its complete upstream test suite under system Perl but fails 23 of 165 tests under PerlOnJava because Encode::find_encoding(...)->name returns Java-style charset names instead of Perl's canonical names.
Reproduction
CPAN random tester run: 20260918-141920-96054
Distribution: IO::HTML 1.004
System Perl 5.42.2:
All tests successful.
Files=5, Tests=165
Result: PASS
PerlOnJava JVM backend:
Files=5, Tests=165
Result: FAIL
Failed 2/5 test programs. 23/165 subtests failed.
The interpreter backend reproduces the same 23 failures.
Failing tests
t/10-find.t: 14 failurest/20-open.t: 9 failurest/00-all_prereqs.t,t/00-load.t, andt/30-outfile.t: pass
The failures are all charset-name mismatches:
got: ISO-8859-15
expected: iso-8859-15
got: windows-1252
expected: cp1252
The affected inputs include HTML declarations for ISO-8859-15 and ISO-8859-1, including declarations near the 1024-byte scan boundary.
Likely cause
IO::HTML calls Encode::find_encoding($charset) and then uses the returned object's name method. Perl returns Encode's canonical names (iso-8859-15 and cp1252), while PerlOnJava returns Java canonical charset names (ISO-8859-15 and windows-1252).
The PerlOnJava Encode implementation already maps US-ASCII to ascii and UTF-8 to utf-8-strict, but otherwise returns the Java charset name unchanged. The canonical-name mapping needs to cover the relevant Perl aliases and should preserve the expected behavior for both backends.
Expected behavior
For equivalent Encode::find_encoding calls, PerlOnJava should return an Encode::Encoding object whose name matches Perl's canonical name, including at least:
ISO-8859-15->iso-8859-15windows-1252/ISO-8859-1->cp1252
Please add focused regression coverage for the canonical names and verify IO::HTML 1.004 on both the JVM and interpreter backends after the fix.
Related project context
The project module-compatibility notes already identify encoding-name case/alias normalization as an outstanding Encode compatibility gap affecting IO::HTML. This report provides a complete upstream reproduction and confirms the defect on both PerlOnJava execution backends.
- Dominant language
- Perl
- Stars
- 64
- Forks
- 6
- Avg merge
- 5h 11m
- Merged PRs (30d)
- 168
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from fglock/PerlOnJava
-
area:cpan-port area:unicode bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
fglock/PerlOnJava#1341 ·
-
area:backend area:runtime enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
fglock/PerlOnJava#1494 ·
-
area:backend area:runtime enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
fglock/PerlOnJava#1492 ·
-
area:parser bug
Difficulty 3/5 1-2 days Newbie friendliness 65/100
fglock/PerlOnJava#1491 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
fglock/PerlOnJava#1487 ·
All issues in fglock/PerlOnJava
Similar issues
-
documentation Needs Triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
trizen/youtube-viewer#456 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
connectivity Open
Difficulty 1/5 Under an hour Newbie friendliness 80/100
-
Common US ingredient names are not recognized, so about 12.4k US products miss an allergen warning Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
openfoodfacts/openfoodfacts-server#14657 · 4 comments ·