Thanks for the reply. This particular transaction was a bowl of noodles and the difference between paying in GBP and HKD less than 50p so hardly worth the trouble.
It was the principle, had I been buying dan iPad or something the difference could have been worth having.
I have subsequently been back to the same noodle shop, and when I insisted on paying in HKD they said they were unable. Likely story.
There is a thread in Revolut Community about the same thing and there have been various suggestions It seems that the first 6 digits of the card number give away the country the card was issued. Somebody suggested a setting in the app to decline payments in GBP.
It gets worse, I have a U.K. issued prepaid card but held in USD. A colleague was reporting that when he tried to take USD out of a multi currency ATM at Heathrow, it wanted to charge in GBP (which would have meant an exchange from USD to GBP because the card was issued in the U.K.), but that would have then been converted into USD, the currency in the card.
So USD - GBP - USD in the same transaction, on an ATM from the issuer of the card.