The bank won't have any service charge but the rate of the currency would be bad. You can call different bank to ask if you are worried.
Some agency won't charge at once and you could pay at the hotel, (such as Asiarooms.com) but some would charge once you booked the room successfully. You need to aware about it before making the booking.
Normally if you cancel the room, the agency would refund into the credit card. Of course the rate would be bad again.