Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Encode canonical charset names differ from Perl, breaking IO::HTML

Aperta
#1,445 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
65/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
java, perl
Ambito
backend

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

area:cpan-port area:unicode bug

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 failures
  • t/20-open.t: 9 failures
  • t/00-all_prereqs.t, t/00-load.t, and t/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-15
  • windows-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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di fglock/PerlOnJava

Tutte le issue di fglock/PerlOnJava

Issue simili

Altre issue su Perl

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.