Странные символы в ответе XML от API Google Weather API

Я только что запустил небольшое приложение, над которым я работал. Ничего серьезного, но я бы хотел нормально работать. Это на www.wedrapp.com .

Большую часть времени он отлично работает. Введите город, возвращается XML, анализируется и возвращенные данные отображаются пользователю.

К сожалению, однако, при поиске некоторых городов, таких как Марсель, возвращается ошибка. Если вы ищете Марсель, вы увидите, что я имею в виду. У меня есть чувство, что это связано со специальными персонажами, поскольку Марсель обыскал, фактически, Марсель, Прованс-Альпы-Лазурный берег в XML. Точно так же Париж дает ошибку, так как он фактически возвращает Париж, Иль-де-Франс.

Может ли кто-нибудь пролить свет на то, как удалить эти странные символы, или, по крайней мере, остановить их, предоставив ошибку, прежде чем нажать экран? XML обрабатывается с помощью PHP.

Solutions Collecting From Web of "Странные символы в ответе XML от API Google Weather API"

Узнайте, в чем кодировка XML, возвращаемая google. Затем перекодируйте его из этой кодировки в UTF-8, затем вы можете загрузить XML с помощью SimpleXML .

Google API API Google Weather имеет кодировку на основе языка, который указан при запросе (возможно указать кодировку, которую вы хотите иметь, я скоро приду к этому).

Например, это может быть ISO-8859-2 как связанный вопрос. PHP XML – API Google Weather – показывает синтаксический анализ и изменение данных (Language, UTF-8 и F to Celsius) .

Вы можете узнать, какой из них можно найти в заголовке HTTP-заголовка Content-Type:

 Content-Type: text/xml; charset=ISO-8859-1 

Вы использовали utf8_encode Docs для изменения кодировки, он преобразует кодированную строку ISO-8859-1 (также называемую Latin-1 ) в UTF-8 . Похоже, что стандартные запросы к секретному API погоды google возвращают это по умолчанию.

Вы можете указать кодировку, которую хотите добавить, добавив в запрос параметр oe . Например, чтобы получить его непосредственно как UTF-8 :

 http://www.google.com/ig/api?weather=Mountain+View&oe=utf-8 ^ 

Выполнение этого гарантирует, что вы всегда получите конкретную кодировку, вместо этого вам нужно угадать или разобрать заголовки ответов.