problema lettere accentate da file xml a php

martino9

Nuovo Utente
20 Gen 2017
3
0
1
Buongiorno a tutti, ho questo file xml:

Codice:
<?xml version="1.0" encoding="iso-8859-1"?>
<MENU>
<word><it>bontà </it><en>goodness</en></word>
</MENU>
e questo file php:

PHP:
<html>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <?PHP header('Content-type: text/html; charset=iso-8859-1'); ?>
   <head> 
       <style>
           body {
               font-family: "Times New Roman OS";
               font-weight: 100;
               font-size:24px;
               background-color:#333;
               text-align:center;
           } 
         
           input {
               padding:5px;
               background-color:#222;
               color:#bbb;
               border:0;
               font-style: italic;
               margin:6px 0;
               height:30px;
           }
       </style> 
   </head>
 
   <body>
       <?PHP
           $documento = new DOMDocument();
           $documento->load( 'file.xml' );
          
           $elementi = $documento->getElementsByTagName( "word" );
           $num=0;
           $wordit = array();

           foreach( $elementi as $elemento ){
               $num=$num+1;
               $nomelemento = $elemento->getElementsByTagName( "it" );
               $wordit[$num] = $nomelemento->item(0)->nodeValue;

               $nomelemento = $elemento->getElementsByTagName( "en" );
               $worden[$num] = $nomelemento->item(0)->nodeValue;
           }

           $randomlingua = rand(1,2);
           $randomword = rand(1,$num);
       ?>

       <div style="border:2px dashed #999; padding:10px; width:400px; margin:200px auto 0 auto;">
           <?PHP if ($randomlingua == 1) { ?>
               <span style="color:#fff; font-style: italic;"><?PHP echo $wordit[$randomword];?> (ita)</span><br><input type="text" size="50" placeholder="write text">
               <span style="color:#333;"><?PHP echo $worden[$randomword];?></span><br>
           <?PHP } else { ?>     
               <span style="color:#007bba; font-style: italic;"><?PHP echo $worden[$randomword];?> (eng)</span><br><input type="text" size="50" placeholder="write text">
               <span style="color:#333;"><?PHP echo $wordit[$randomword];?></span><br>
           <?PHP } ?>
       </div>
     
   </body>
</html>
Ma mi interpreta male gli accenti. Come posso fare? Ho provato anche in UTF8 ma la situazione non migliora.

Ci sono delle funzioni (tipo htmlentities) che risolvono il problema? se si, come?

grazie

Martino[/CODE]
 
Ultima modifica di un moderatore:

martino9

Nuovo Utente
20 Gen 2017
3
0
1
grazie della dritta, ho modifica il post.
Purtroppo però modificando in UTF8 non capita nulla, avevo già provato, anzi avevo iniziato con UTF8 non stampava niente, per cui ho fatto la prova con iso e almeno con quello stampa (seppur in malo modo) le variabili
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.250
324
83
Invece di:
Codice:
charset=iso-8859-1
e
encoding="iso-8859-1"
prova ad usare
Codice:
charset=utf-8
e
encoding="utf-8"
ATTENZIONE
quando posti del codice usa il tag [ code ] oppure l'opzione dalla barra delle applicazioni
box inserisci 2.png.JPG

Leggi anche il regolamento del forum!
Grazie

Scusate sono arrivato tardi!

Se non funziona utf-8 usa le entity
 

fabryx

Nuovo Utente
9 Ott 2016
38
2
8
PHP:
$stringa_errata = 'bontà è';

$errore_cerca = array('à', 'è');
$errore_correggi = array('á', 'é');

$stringa_corretta = str_replace($errore_cerca , $errore_correggi , $stringa_errata );
forse cosi risolvi :)
 

martino9

Nuovo Utente
20 Gen 2017
3
0
1
ho risolto! lo script andava bene, occorreva soltanto salvare il file in codifica UTF8, alla fine una banalità!