SAFTCheck
Documentazione / encoding
encoding.declaration

Dichiarazione di codifica XML (Windows-1252)

L'AT richiede la codifica Windows-1252. Le dichiarazioni UTF-8 vengono rifiutate silenziosamente.

Cosa richiede l'AT

I file SAF-T (PT) devono dichiarare e utilizzare la codifica Windows-1252 (CP-1252). Sia la dichiarazione nel prologo XML che il contenuto in byte devono corrispondere.

<?xml version="1.0" encoding="Windows-1252"?>

Perché i file falliscono

ERP stranieri e strumenti moderni usano UTF-8 di default. L'XML prodotto è ben formato; lo schema convalida; il file passa la maggior parte dei validatori. Ma l'AT lo rifiuta in silenzio all'ingresso, senza un messaggio di errore utile.

Il disallineamento si presenta in due varianti:

  • Dichiarazione dice UTF-8 + byte sono UTF-8 — l'intero file è sbagliato dal punto di vista dell'AT.
  • Dichiarazione dice Windows-1252 + byte sono ancora UTF-8 — accade quando qualcuno modifica a mano solo il prologo. I caratteri accentati diventano spazzatura quando l'AT li decodifica.

Come correggere

  1. Transcodifica il corpo del file da UTF-8 a Windows-1252.
  2. Aggiorna la dichiarazione XML per farla corrispondere: encoding="Windows-1252".

L'ordine conta — modifica solo la dichiarazione e spedisci spazzatura; modifica solo i byte e il parser rifiuta la codifica dichiarata.

Auto-fix

SAFTCheck esegue entrambi i passi con un clic. Il file corretto che scarichi contiene gli stessi dati, transcodificati byte per byte, con il prologo riscritto. I caratteri accentati (ç, ã, é, ó) diventano byte singoli nell'intervallo 0xA0–0xFF, come gli strumenti dell'AT si aspettano.

Verifica della correzione

Su Linux/macOS, file my.xml dovrebbe restituire qualcosa come "Non-ISO extended-ASCII text" o "ISO-8859 text", non "UTF-8 Unicode". In un editor esadecimale, ogni byte accentato dev'essere un singolo byte 0xA0–0xFF, non una sequenza con prefisso 0xC3.

Correlato

Altre regole

Usiamo un cookie di sessione per l'accesso, un cookie locale per la preferenza linguistica e Tawk.to per il widget di chat (che imposta i propri cookie quando apri la chat). Google Analytics (GA4) si carica solo dopo la tua accettazione, con anonimizzazione dell'IP; nessun tracker pubblicitario. Vedi la nostra Informativa sulla privacy.