2010-05-19 14 views
8

Estoy usando PHP include para incluir un archivo PHP que tiene HTML. algunos de los contenidos tienen acentos franceses y estos aparecen como en el sitio. ¿Cómo se puede resolver esto?Incluye PHP y acentos (Aparecen como )

Gracias

Aquí está el archivo PHP que incluyen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="en-us" http-equiv="Content-Language" /> 
<title>Accueil</title> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<meta content="Changement créativité rêve buts être centré Plénitude personnel                 Développement transformation Modification nouveauté avancement bien-être     Nouvelle vision ressentis L’énergie positive satisfaction l’acceptation Pardon" name="keywords" /> 
<link href="masterstyles.css" rel="stylesheet" type="text/css" /> 
<link href="menustyles.css" rel="stylesheet" type="text/css" /> 
<link href="menudropdown.css" rel="stylesheet" type="text/css" /> 

<td class="tbsyles" >&nbsp; 
     <h3 class="bigorange"> ACTIVITÉS À VENIR…</h3> 
     <p class="horizblue"> </p> 
     <p class="bigblack"> <br /> 
     Inscrivez-vous à nos conférences et formations 
     <br /> 
     <br /> 
     </p> 
     <h4 class="orange"> Example of some text that could be here<br /> 
     </h4> 
     <p class="horizblue"> &nbsp;</p> 
     <h3 class="bigorange"> <br /> 
     ABONNEZ-VOUS… </h3> 
     <p class="nopadding"> À notre liste d’envoi </p> 

    <form method="post" action="<?php echo $PHP_SELF;?>"> 
<?PHP 
function process_info(){ 

    if(isset($_POST['email'])) 
{ 

$email=$_POST["email"]; 
    $email=strtolower($email); 
    $action = "subc"; 

     // check if email exists 

     // check whether email is correct (basic checking) 
      $test1=strpos($email, "@");          //value must be >1 
      $test2=strpos(substr($email,strpos($email,"@")), ".");   //value must be >1 
      $test3=strlen($email);           //value must be >6 
      $test4=substr_count ($email,"@");        //value must be 1 

if ($test1<2 or $test2<2 or $test3<7 or $test4!=1) 
      { 

      print "<h6>Il a une erreur avec vôtre email</h6>"; 
      print "<h6>Aucune informations ont été envoyer</h6>"; 


      } 
      else 
      { 
      print "<h5>vôtre address est enregistrer, Merci </h5>"; 


       //If they wanted to subsribe, do it... 


      $file = "emaillist-666XXX.txt"; 

      // lets try to get the content of the file 
if (file_exists($file)){ 
     // If the file is already in the server, its content is pasted to variable $file_content 
     $file_content=file_get_contents($file); 
} 
else{ 
     // If the file does not exists, lets try to create it 
     // In case file can not be created (probably due to problems with directory permissions), 
     // the users is informed (the first user will be the webmaster, who must solve the problem). 
     $cf = fopen($file, "w") or die(""); 
     fclose($cf); 
} 

// IF REQUEST HAS BEEN TO SUBSCRIBE FROM MAILING LIST, ADD EMAIL TO THE FILE 
if ($action=="subc"){ 
     // check whether the email is already registered 
     if(strpos($file_content,"<$email>")>0){die("");} 
     // write the email to the list (append it to the file) 
     $cf = fopen($file, "a"); 
     fputs($cf, "\n$email");  // new email is written to the file in a new line 
     fclose($cf); 

} 
} 
} 
} 


process_info(); 


?> 


      &nbsp;<p class="nopadding">Votre Courriel</p> 
      <input name="email" type="text" class="style3" /> 
        <input name="Submit" type="submit" value="OK" /></form> 

       <p class="horizblue"></p> 
       <h3 class="bigorange"> <br /> 
       OUTILS GRATUIT… </h3> 
       <p class="nopadding">Amusez-vous avec des outils intéressants</p> 
     </td> 

Respuesta

9

Eso sucede si el navegador piensa que está usando otra codificación de la que realmente usa.

intenta agregar lo siguiente en su archivo PHP antes de cualquier HTML está impreso:

header ('Content-type: text/html; charset=utf-8'); 
// or 
header ('Content-type: text/html; charset=iso8859-15'); 

y añadir

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

entre las <head></head> etiquetas

ACTUALIZACIÓN: acabo de ver su actualizar con el archivo. necesita agregar header ('Content-type: text/html; charset=utf-8');

+0

Eso funcionó! gracias –

0

¿Cuál es el juego de caracteres de la página HTML? Parece que el conjunto de caracteres del archivo PHP y el HTML dentro de él difieren. Es posible que desee comprobar hacia fuera:

Para obtener más ayuda, por favor, puesto algo de código, concretamente el tipo de documento que se está emitiendo y cualquier llamada a PHP charset funciones.

0

Si cambiar el juego de caracteres no lo arregla, puede usar entidades. &eacute; para é, &ocirc; para ô y así sucesivamente

P.S. 'Il a une erreur avec vôtre correo electrónico' -> Debe decir 'il y a', que está votre no votre y el correo electrónico se puede traducir a 'courriel' :)

+0

Gracias, yo no soy el que hizo la escritura, solo copié pegado lo que me fue dado – jmasterx

0

Trate de usar

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

Tuve el mismo problema con un sitio web para un hotel francés.

Cambiar el juego de caracteres a "ISO-8859-1" en lugar de "UTF-8" hizo el truco.

Ejemplo: < form method = "post" name = acción "contacto" = "send_mail.php" accept-charset = "ISO-8859-1">

Cuestiones relacionadas