I try to minimize credit card use in China (and elsewhere in Asia, for that matter). But when I use my USA-based card, I take the proactive approach and tell them straight out before they run the transaction: You must charge me in <local currency> not USD. I've only had one point of resistance on this, and it was in Thailand not China. In that case I told them it was either baht or I walk/no transaction. (They folded.) I suggest it's easier to take a stand up front than argue for rights and refunds after the fact.