Запрос китайских адресов в геокодировании API Googlemap - PullRequest
0 голосов
/ 28 января 2010

Я следую демонстрационному коду из статьи phpsqlgeocode.html

В БД я вставил несколько китайских адресов, которые в кодировке utf-8. я нашел после урленкода китайский адрес, вывод адреса было бы неправильно. Как этот:

http://maps.google.com.tw/maps/geo?output=csv&key=ABQIAAAAfG3KxFZXjEslq8VNxMBpKRR08snBovzCxLQZ9DWwpnzxH-ROPxSAS9Q36m-6OOy0qlwTL6Ht9qp87w&q=%3F%3F%3F%3F%3F%3F%3F%3F%3F132%3F

Затем выводится 200,5,59.3266963,18.2733433 (я не могу запросить это через PHP, но вместо этого через браузер).

Этот адрес фактически расположен в Тайчжуне, Тайвань, но оказывается в Швеции, Европе. Но когда я вставляю китайский адрес (например, 台中市 西屯 區 智 惠 街 131 巷 56 號 58 號 60 號) в URL, результат оказывается хорошим!

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

(я изменил MAPS_HOST с maps.google.com на maps.google.com.tw.) (Я уверен, что мой ключ верен, а другие английские адреса геокодирования хорошо.)

1 Ответ

0 голосов
/ 28 января 2010
q=%3F%3F%3F%3F%3F%3F%3F%3F%3F132%3F

декодирует до:

?????????132?

поэтому что-то повредило строку еще до кодирования URL. Это может произойти, если вы попытаетесь преобразовать китайские символы в кодировку, которая не поддерживает китайские символы, например Latin-1.

Вы должны убедиться, что вы используете UTF-8 последовательно через ваше приложение. В частности, вам необходимо убедиться, что таблицы в базе данных хранятся с использованием набора символов UTF-8; в терминах MySQL, сопоставление UTF-8. В противном случае по умолчанию для MySQL используется Latin-1. Вы также захотите убедиться, что ваше соединение с базой данных использует UTF-8, вызвав 1mysql_set_charset ('utf-8') `.

(я полагаю из вашего вопроса, что вы используете PHP.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...