I am using a Google cloud function with the Google Places API. It works fine in English, but I get this error when inputting Hebrew or Russian:
Unhandled error TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
When I try my request directly in a web browser it works fine:
https://maps.googleapis.com/maps/api/place/autocomplete/json?key=myKey&type=address&input=основной
But when I try the exact same string in NodeJS I get the error above, here is my code (I tried unescape):
var input = unescape(data.textInput); //string var key = "myKey"; var type = "address"; var url = "https://maps.googleapis.com/maps/api/place/autocomplete/json?" + "key=" + key + "&type=" + type + "&input=" + input;
Advertisement
Answer
Try to encode the url before performing the actual request.
var url = "https://maps.googleapis.com/maps/api/place/autocomplete/json?" + "key=" + key + "&type=" + type + "&input=" + input; var encodedUri = encodeURI(url)