Pregunta

Estoy trabajando con datos de direcciones del Reino Unido y también datos de direcciones internacionales.

Necesito geocodificar los datos de la dirección para usarlos en un mapa de Google. Estoy haciendo esto usando el servicio HTTP. Es decir, construir una cadena de consulta y pasarla a file_get_contents ($ THEURL).

He logrado geocodificar el 80% de los datos de la dirección perfectamente, sin embargo, aquellas direcciones en países como Noruega y Suecia que contienen caracteres especiales no devolverán un código geográfico. El código devuelto es 602 (no se puede encontrar una dirección).

Mirando la documentación, puedo ver que la cadena enviada a Google debe estar codificada en UTF8.

He intentado lo siguiente para asegurarme de que la cadena está codificada en UTF8 / eliminar los caracteres especiales.

1) Usando la codificación UTF8 en la cadena de consulta, esto a menudo da como resultado que se muestren caracteres malformados en la pantalla.

2) mb_check_encoding informa que la cadena está codificada correctamente.

3) Uso de una función para sustituir caracteres especiales por sus privilegios de europieno (con la esperanza de que la API de Google lo compense.

¿Alguien puede sugerir una razón por la cual mi método no funciona (ya sea con codificación o no?).

¿Fue útil?

Solución

Necesita revisar sistemáticamente cada aspecto de codificación en su sistema y definir en qué codificación se encuentra. Mb_detect_encoding y las conjeturas no son un buen enfoque aquí.

Debe verificar la codificación de:

  • datos entrantes
    • páginas
    • OBTENER parámetros
    • conexión de base de datos
    • intercalaciones de tablas de bases de datos
  • los archivos de script con los que trabaja

Si aparecen caracteres malformados, es probable que esté utilizando ISO-8859-1 o alguna otra codificación que no sea UTF-8 en alguna parte. Cuando todo está limpio UTF-8, la solicitud debe pasar.

Un muy buen artículo sobre los conceptos básicos es El mínimo absoluto que todo desarrollador de software debe saber Acerca de los conjuntos de caracteres y Unicode (¡Sin excusas!) .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top