When using google geocoding api v3 I have a some full and valid addresses that contain US state names as either part of the house name or street name. Google interprets this as being in the US, even though the full address including country is included.
eg (it is a ficticious address, as I cannot publish real customer details, but the principle is the same). New York Farm Main Street St Hellier JE1 1AA JERSEY
If I either miss out the 'New York Farm' line, or add 'UK' to the end then the correct geocoding is returned. But obviously this is difficult to do automatically (especially as Jersey is not in the UK) and I have a lot of addresses with presumably other similar cases. If I pass in a region parameter it still has the same problem.
Is there a way I can 'force' the country?
You can use "region biasing" or "viewport biasing" - both should give you results that are more relevant to the specified area. You probably want region biasing - they even give this example:
You can set the Geocoding API to return results biased to a particular region using the region parameter. This parameter takes a ccTLD (country code top-level domain) argument specifying the region bias. Most ccTLD codes are identical to ISO 3166-1 codes, with some notable exceptions. For example, the United Kingdom's ccTLD is "uk" (.co.uk) while its ISO 3166-1 code is "gb" (technically for the entity of "The United Kingdom of Great Britain and Northern Ireland").
Indeed, adding ®ion=uk
to your query makes it return the appropriate place.