<head>
<meta charset="ISO-8859-7">
</head>
He estado trabajando con formularios y veo que la etiqueta <meta charset="ISO-8859-7">
codifica el texto que se tecleará dentro de un área de texto. Cosa que el método de codificación utilizado para almacenar el archivo no es así.¿Cómo se transmiten los caracteres sobre un formulario?
he visto que si un carácter escrito no es parte de la codificación speciefied por la etiqueta <meta charset="ISO-8859-7">
, el carácter será referenced (& #D;)
que estaba suponiendo que la forma estaba enviando bytes secuencias de la codificación speciefied. Porque si escribo un carácter, sea lo que sea, será un byte que interpretará una codificación.
Por ejemplo, con el <meta charset="ISO-8859-7">
tipo i en una forma del carácter "¥"
Este carbón no es parte de la codificación pero debe enviar como un byte de la posición que representa A5
, no importa si se puede representar (Esto lo hace normalmente cualquier editor).
Pero no, el formulario no lo envía como un byte, sino que el carácter es referenced.
Código:
index.php:
<?php header('Content-Type: text/html; charset=ISO-8859-7'); ?>
<head>
<meta charset="ISO-8859-7">
</head>
<form method="post" action="encode.php" accept-charset="ISO-8859-7">
<p><textarea name="input" maxlength="10" rows="5" cols="100"></textarea></p>
<p><button>Submit</button></p>
</form>
encode.php:
<head>
<meta charset="ISO-8859-7"><!-- Useless, Even if is specified the ISO-8859-1 where the "¥" exist, the form sended a reference char rather an a byte to interpret.-->
</head>
<?php
$input=$_POST["input"];
var_dump($input);
?>
Resultado de código fuente:
string(6) "¥"
Nota: He probado cambiando la codificación usada para almacenar el archivo.
en el index.php: No importa lo que la codificación se utiliza para almacenar el archivo, la forma siempre enviará en consecuencia con el atributo accept-charset=""
o con la etiqueta <meta charset="">
si no se especifica el accept-charset=""
.
Y con encode.php: La cadena nunca es codificada por el archivo. Se puede trabajar y representar, pero la codificación utilizada para almacenar el archivo no tiene nada que ver con eso.
¿Por qué no utilizar UTF-8? – CuriousMind
Uso UTF-8 pero me preguntaba sobre este tema. – nEAnnam
¿Podría el encabezado 'Content-Type' enviar un juego de caracteres en conflicto? – cmbuckley