Formulario no acepta caracteres polacos

Tengo un problema y no puedo encontrar la solución, aunque tiene seguro una solución, como todo.
Estoy haciendo un diccionario Polaco - Español.
El codigo html y php y sql para mysql ya tengo mas o menos preparado para trabajar y meter palabras y traducciones,
pero tengo un problema con letras Españolas "ñ, los accentos
y las letras Polacas, " A,C,E L,N,Ó,S,Z; a,c,e,l,n,ó,s,z,z;
El formulario html tiene dos campos : $tipobusqueda y $terminobusqueda.
En $tipobusqueda se elige idioma de traducción ES-PL o PL-ES.
En $terminobusqueda se escribe palabra para traducir.
Pero si se escribe una palabra, por ejemplo: "España" ; o palabra Polaca: "Czesc"
Entonces no emcuentra la palabra en la base de datos mysql.
En la base de datos he hecho un campo para la palabra "españa" y la cambie por "espana" y tampoco cuando pongo españa en el formulario no encuentra en BD.
Si pongo "espa" si que me encuentra en BD.

3 respuestas

Respuesta
1
Te sugiero que uses funciones dedicadas de manejo de caracteres unicode como por ej iconv:
http://uk.php.net/manual/en/function.iconv.php
es facil de manejar. Por ejemplo podrias usar algo como:
function clearUTF($s)
{
    $r = '';
    $s1 = iconv('UTF-8', 'ASCII//TRANSLIT', $s);
    for ($i = 0; $i < strlen($s1); $i++)
    {
        $ch1 = $s1[$i];
        $ch2 = mb_substr($s, $i, 1);
        $r .= $ch1=='?'?$ch2:$ch1;
    }
    return $r;
}
echo clearUTF("ACELNÓSZZacelnószzÑñ");
Hola .
Gracias por la respuesta.
Ya no voy atener tiempo para solucionarlo .
Entonces después de vacaciones, voy con el tema otra vez.
Hasta luego
Respuesta
1
De hecho la solución para tu problema es mucho más simple de lo que te imaginas, usa sustitución de caracteres, te explico. Primero crea una función de sustitución de caracteres, en la cual vas a sustituir los caracteres que te causan problemas por códigos usando los caracteres que ya filtraste
x ejemplo Ñ seria & #2 0 9; o & # D 1; o & Ntilde; (sin espacios) asumiendo que hagas el strip de los codigos html.
Nota que esto es usando códigos ascii para que al mostrarlos en pantalla el navegador automáticamente lo interprete y lo muestre correctamente.
Recuerda siempre tener en cuenta esta conversión a la hora de guardar/leer en la base de datos y verifica que se muestre correctamente en los exploradores principales (Internet Explorer, Firefox y Opera)
Hola .
Gracias por la respuesta.
Ya no voy atener tiempo para solucionarlo .
Entonces después de vacaciones, voy con el tema otra vez.
Hasta luego
Respuesta
1
Creo que el problema es por la tabla de caracteres que tienes instalado en el servidor, pero no se mucho de eso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas