Ciao a tutti,
ho un problema con cui sto sbattendo la testa
da 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:
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;
}
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.
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/\/\/\/\