Геокод Google:Реализация PHP - проблемы с кодировкой символов

StackOverflow https://stackoverflow.com/questions/1825755

Вопрос

Я работаю с британскими адресными данными, а также с международными адресными данными.

Мне нужно геокодировать адресные данные для использования на карте Google.Я делаю это с помощью HTTP-сервиса.Ie/ Создает строку запроса и передает ее в file_get_contents($THEURL).

Мне удалось идеально геокодировать 80% адресных данных, однако те адреса в таких странах, как Норвегия и Швеция, которые содержат специальные символы, не будут возвращать геокод.Возвращаемый код 602 (не удается найти адрес).

Заглядывая в документацию, я вижу, что строка, отправленная в Google, должна быть закодирована в UTF8.

Я попробовал следующее, чтобы убедиться, что строка закодирована в UTF8 / удалить специальные символы.

1) Использование кодирования UTF8 в строке запроса - это часто приводит к отображению на экране искаженных символов.

2) mb_check_encoding сообщает, что строка правильно закодирована.

3) Использование функции для замены специальных символов на их европейские эквиваленты (в надежде, что Google api компенсирует это.

Кто-нибудь может подсказать причину, по которой мой метод не работает (независимо от того, связано это с кодировкой или нет?).

Это было полезно?

Решение

Вам нужно систематически проработать каждый аспект кодирования в вашей системе и определить, в какой кодировке он находится. Mb_detect_encoding и строить догадки здесь не самый лучший подход.

Вам нужно проверить кодировку:

  • входящие данные
    • страницы
    • ПОЛУЧЕНИЕ параметров
    • подключение к базе данных
    • параметры сортировки таблиц базы данных
  • файлы сценариев, с которыми вы работаете

Если встречаются искаженные символы, скорее всего, вы используете ISO-8859-1 или какую-либо другую кодировку, отличную от UTF-8.Когда все будет в чистом UTF-8, запрос должен пройти.

Очень хорошая статья об основах такова Абсолютный минимум, который Абсолютно, Положительно должен знать каждый разработчик программного обеспечения о Unicode и наборах символов (Никаких оправданий!)..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top