Ciao a tutti,
ho un problema con cui sto sbattendo la testada tre giorni e non riesco a venirne a capo.
Il punto è questo: il php fa delle query e il risultato viene scritto su un file xml compilato con tanto di intestazione e dei tag necessari; questo .xml deve essere importato in OpenOffice. Tutto filerebbe liscio se non fosse per l'encoding in utf-8...
Le istruzioni in php che uso sono queste:
La persona che ha messo i dati nelle tabelle lo ha fatto un po' a cavolo per cui, credo, saranno capitati tab, newline, spazi che non sono spazi (caratteri incomprensibili), lettere tedesche etc.Codice PHP:function xmlEncode($stringToEncode) {
# prima di encodare in utf8 per l'xml elimino alcuni dei caratteri non validi
$patterns = array(chr(9), chr(10), chr(11), chr(145), chr(146), chr(147), chr(148), " ", chr(246), chr(252)); # ö -> ö -> ö
$replacements = array(" ", " ", " ", "'", "'", """, """, " ", "ö", "ü");
$stringToEncode = str_replace($patterns, $replacements, $stringToEncode);
$stringToEncode = htmlspecialchars($stringToEncode, ENT_QUOTES);
$stringToEncode = utf8_encode($stringToEncode);
return $stringToEncode;
}
Il file così esportato, quando lo importo mi da errore di formato all'ultima riga (quella di chiusura).
Se prendo questo .xml, lo apro con il notepad e dico salva encodando in utf8 il documento si apre!
...però i caratteri precedentemente encodati in maniera corretta mi vengono riencodati e quindi non si vedono bene (es. lettere accentate).
Se invece non faccio encodare dal php in utf8 e lo faccio fare al notepad, prima di passarlo a OO, non me lo apre.
Aiuto/\/\/\/\![]()

da tre giorni e non riesco a venirne a capo.
Rispondi quotando