Encode canonical charset names differ from Perl, breaking IO::HTML
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 65/100
Direzione di ricerca
Inizia con l’implementazione di Encode di PerlOnJava e i test di compatibilità esistenti, quindi riproduci i fallimenti di canonical-name sia sul backend JVM sia su quello dell’interprete. Aggiungi una copertura di regressione mirata per le mappature ISO-8859-15 e cp1252 e verifica che la suite IO::HTML 1.004 passi su entrambi i backend.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Perl
- Stelle
- 64
- Fork
- 6
- Merge medio
- 5h 11m
- PR unite (30g)
- 168
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di fglock/PerlOnJava
-
area:cpan-port area:unicode bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
fglock/PerlOnJava#1341 ·
-
area:backend area:runtime enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
fglock/PerlOnJava#1494 ·
-
area:backend area:runtime enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
fglock/PerlOnJava#1492 ·
-
area:parser bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
fglock/PerlOnJava#1491 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
fglock/PerlOnJava#1487 ·
Tutte le issue di fglock/PerlOnJava
Issue simili
-
documentation Needs Triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
trizen/youtube-viewer#456 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
connectivity Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
-
Common US ingredient names are not recognized, so about 12.4k US products miss an allergen warning Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
openfoodfacts/openfoodfacts-server#14657 · 4 commenti ·