Я использую API GoogleMaps для получения информации о местоположении. Результат вызывается через cURL
, а извлеченная строка должна быть преобразована в объект JSON с использованием json_decode
.json_decode не работает с немецкими символами (даже если encodig UTF8)
Для многих мест (например, в Нидерландах) это работает как шарм. Но для многих немецких (и, вероятно, таких стран, как Австрия, Швейцария и т. Д.) Это не работает должным образом.
Я считаю, что это происходит из-за специальных символов, таких как ß
, но и ü
, ë
, ä
, ï
и так далее.
Например: это строка принесла с помощью локон (http://maps.googleapis.com/maps/api/geocode/json?address=Stoltenkampstra%C3%9Fe%2011,Bad%20Bentheim&sensor=false&language=nl)
В следующем $sResponse
является результатом извлекалось cURL
. Когда я пытаюсь выполнить json_decode($sResponse);
, его значение становится null
. Когда я выполняю json_last_error()
, он говорит 5 (что означает JSON_ERROR_UTF8). Когда я выступаю mb_detect_encoding($sResponse)
, он говорит UTF-8
.
Любые предложения?
Здесь он работает с простым 'var_dump (json_decode (file_get_contents (" http://maps.googleapis.com/maps/api/geocode/json?address=Stoltenkampstra%C3%9Fe % 2011, Bad% 20Bentheim & sensor = false & language = nl "));' . – Wrikken
Покажите нам, что именно ответ, что именно вы пытаетесь декодировать. 'Var_dump ($ sResponse)'. – deceze
Argh, thanks Wrikken! я попробовал вашу ссылку, и я тоже видел неправильные символы. Я забыл сообщить документу, что его кодировка должна использовать метатег. Извините! :) – Ben