Problema di codifica XSLT, risultato di punti interrogativi
Domanda
Sto cercando di eseguire una trasformazione XSLT, ma caratteri come & # 235; & # 246; & # 239; sono sostituiti da un "?" letterale nell'output (ho controllato con un editor esadecimale). Il file sorgente ha i caratteri corretti e il foglio di stile ha:
<xsl:output encoding="UTF-8" indent="yes" method="xml"/>
Che altro mi manca?
Sto usando il sassone come trasformatore, se questo è importante.
Soluzione
Il problema è molto probabilmente nel modo in cui si chiama il trasformatore. Suppongo che funzionerà bene se lo chiami usando java -jar saxon.jar ...
In generale, quando si utilizzano strumenti XML che accettano InputStream / OutputStream, gli strumenti si accerteranno che la codifica sia corretta.
Quando usi una combinazione di Stream e Writers, dovrai assicurarti che la codifica quando passi dall'una all'altra corrisponda a ciò che hai detto al processore XSLT di produrre. Imposta sempre le codifiche in modo esplicito. Potrebbero esserci delle impostazioni predefinite, ma quando si tratta di codifiche, spesso si sbagliano.