Pergunta

Eu estou trabalhando com dados de endereço do Reino Unido e também dados de endereço International.

Eu preciso para geocodificar os dados de endereço para uso em um mapa do Google. Eu estou fazendo isso usando o serviço HTTP. Ie / Construindo uma string de consulta e passá-la para file_get_contents ($ Theurl).

Eu consegui geocode 80% dos dados de endereço perfeitamente, no entanto esses endereços em países como a Noruega e Sweeden que contêm caracteres especiais não irá retornar um código geocode.The retornado é 602 (não pode encontrar um endereço).

Olhando para a documentação que eu posso ver que a cadeia enviada para o Google deve ser UTF8 codificado.

Eu tentei o seguinte para garantir a string é UTF8 codificado / remover os caracteres especiais.

1) Usar codificação UTF8 na cadeia de consulta -. Isso muitas vezes resulta em caracteres malformados que está sendo exibido na tela

2) mb_check_encoding relatórios a string é codificado corretamente.

3) Usando uma função para substitue caracteres especiais para vários daqueles eqivilents europiene (na esperança google api vai compensar.

Alguém pode sugerir uma razão pela qual o meu método não está funcionando (seja a ver com codificação ou não?).

Foi útil?

Solução

Você precisa ir sistematicamente em todos os aspectos de codificação em seu sistema e definir o que codificação é no. Mb_detect_encoding e conjecturas não são uma boa abordagem aqui.

Você precisa verificar a codificação de:

  • dados de entrada
    • páginas
    • parâmetros GET
    • Conexão de banco de dados
    • agrupamentos de tabela de banco de dados
  • os arquivos de script que trabalham com você

Se ocorrer caracteres malformados, as chances são que você está usando ISO-8859-1 ou algum outro não-UTF-8 em algum lugar. Quando tudo é limpo UTF-8, o pedido deve passar.

Um bom artigo sobre o básico é O desenvolvedor Absolute Minimum cada Software Absolutamente, Positivamente Precisa Saber Sobre Unicode e Conjuntos de caracteres (Sem desculpas!) .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top