I caratteri speciali del file xml non vengono visualizzati correttamente utilizzando php

Questa potrebbe essere una domanda stupida, ma non è una questione di quello che riesco a trovare, è una questione che non so cosa cercare. Ci sono alcuni caratteri speciali che non vengono visualizzati correttamente in PHP. Sto prendendo alcune informazioni da un file xml e le echeggiamo.

vale a dire:

dovrebbe essere -> Norimberga

echi come -> Nürnberg

qualche consiglio su cosa cercare o come risolvere questo?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

Hai semplicemente una mancata corrispondenza nella codifica . Mantieniti aggiornato con questi articoli:

Ciò che each programmatore ha assolutamente bisogno di sapere sulle codifiche e sui set di caratteri per lavorare con il text
Gestione di Unicode Front To Back in un'app Web

prova un set di caratteri diverso nella pagina da cui stai riecheggiando

http://www.w3schools.com/tags/ref_charactersets.asp

Puoi provare con il seguente meta tag nella tua testa HTML.

 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 

C'è una discrepanza tra la codifica dei caratteri del tuo XML e ciò che stai emettendo da PHP. Molto probabilmente, uno è UTF-8 e uno è ISO-8859.

Dal lato PHP, puoi impostarlo con una direttiva header

 <?php header('Content-Type: text/plain; charset=ISO-8859-1'); header('Content-Type: text/plain; charset=utf-8'); ?> 

e / o nell'output di HTML

 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

Sul lato XML, la maggior parte degli editor di text di qualità consente di specificare la codifica dei caratteri mentre si salva il file. (Ad esempio WordWrangler su Mac)

Se il file XML è effettivamente in ISO-8859, puoi usare utf8_encode() per convertirlo in UTF-8 mentre lo leggi.

Una discussione approfondita su PHP e codifica dei caratteri .

"Sto prendendo alcune informazioni da un file xml e le echeggiamo".

La row di command di Windows non support utf8 correttamente in quanto non utilizza un font UTF8.

Basta inserire il file in un punto raggiungibile attraverso un server Web e testarlo chiamando il file attraverso il server web. In alternativa conduci l'output dello script in un file di text:

php test.php> output.txt

E open output.txt è un editor in grado UTF8 o usa un programma 'Tail' capace di utf8.

test.php

 <?php echo "Nürnberg"; ?> 

In esecuzione dal prompt dei comandi:

 php test.php Nürnberg 

Chiamando attraverso un server web http: //localhost/test.php

 Nürnberg