If a small amount is involved don't worry, they all rip you off! My favored solution is an exchange, I've saved 500 qr by withdrawing cash from bank and transferring through an exchange to a UK account.
HSBC charges 40-60 QR to transfer money by wire and have a higher exchange rate than the exchange who charge 30 qr fee. So if you transfer more than a few thousand Riyals it can make a significant difference.
If you are not time limited go to an exchange and ask for a Sterling Cheque, this costs 2-3 QR and is encashable in the UK as it is drawn on a Brit bank. Send this by post and the recipient can cash this the same as a normal UK cheque. If you can wait for the post this is the cheapest way! They do charge the encasher 12.50 pounds whatever method is adopted so allow for this if you want a specific amount to be received.