1

compañeros. Estoy realizando un formulario, pero he notado que al momento de enviar los datos a través del método POST, se muestran los caracteres especiales de esta forma: �. ¿Cómo podría resolver esto?

Es un ejemplo del formulario que uso.

<form role="form" action="registrar.php" method="post" class="f1">
  <div class="form-group">
    <label class="sr-only" for="f1-nombres">Nombres</label>
    <input type="text" name="f1-nombres" placeholder="Nombres..." class="f1-nombres form-control" id="f1-nombres" autocomplete="off">
  </div>
  <div class="form-group">
    <label class="sr-only" for="f1-apellidos">Apellidos</label>
    <input type="text" name="f1-apellidos" placeholder="Apellidos..." class="f1-apellidos form-control" id="f1-apellidos" autocomplete="off">
  </div>

Y así lo recibo en PHP7:

$nombres=$_POST['f1-nombres'];

$nombres=str_replace("Á", "&Aacute;", $nombres);
$nombres=str_replace("É", "&Eacute;", $nombres);
$nombres=str_replace("Í", "&Iacute;", $nombres);
$nombres=str_replace("Ó", "&Oacute;", $nombres);
$nombres=str_replace("Ú", "&Uacute;", $nombres);
$nombres=str_replace("Ñ", "&Ntilde;", $nombres);

$nombres=str_replace("á", "&aacute;", $nombres);
$nombres=str_replace("é", "&eacute;", $nombres);
$nombres=str_replace("í", "&iacute;", $nombres);
$nombres=str_replace("ó", "&oacute;", $nombres);
$nombres=str_replace("ú", "&uacute;", $nombres);
$nombres=str_replace("ñ", "&ntilde;", $nombres);

$apellidos=$_POST['f1-apellidos'];

$apellidos=str_replace("Á", "&Aacute;", $apellidos);
$apellidos=str_replace("É", "&Eacute;", $apellidos);
$apellidos=str_replace("Í", "&Iacute;", $apellidos);
$apellidos=str_replace("Ó", "&Oacute;", $apellidos);
$apellidos=str_replace("Ú", "&Uacute;", $apellidos);
$apellidos=str_replace("Ñ", "&Ntilde;", $apellidos);

$apellidos=str_replace("á", "&aacute;", $apellidos);
$apellidos=str_replace("é", "&eacute;", $apellidos);
$apellidos=str_replace("í", "&iacute;", $apellidos);
$apellidos=str_replace("ó", "&oacute;", $apellidos);
$apellidos=str_replace("ú", "&uacute;", $apellidos);
$apellidos=str_replace("ñ", "&ntilde;", $apellidos);

echo $nombres . " " . $apellidos;

El cambio de caracteres no es posible porque (al parecer) ni siquiera llegan las tildes, sino este símbolo �. Quisiera añadir que en la base de datos, sí se muestran las tildes. ¿Cómo podría resolver eso para poder hacer el reemplazo de caracteres?

Saco04
  • 621
  • 5
  • 18
  • 2
    Hola, tal vez te pueda servir [¿Por que el Carácter inspector (�) aparece en algunos datos obtenidos de la Base de Datos?](https://es.stackoverflow.com/questions/59489/por-que-el-car%c3%a1cter-inspector-aparece-en-algunos-datos-obtenidos-de-la-base?r=SearchResults&s=1|0.0000) – the-breaker Sep 10 '19 at 02:28
  • Muchísimas gracias. – Saco04 Sep 10 '19 at 03:04

0 Answers0