In UTF-8 encoding, pound sign (£) is two bytes: 0xC2 0xA3. However, if you use javascript escape() function, the output is %A3. In server side, if you use the HttpUtility.UrlDecode("%A3") to decode it, the result will be three bytes sequence: ef bf bd, which display like �. In order to get the correct UTF-8 pound character (£), you need to use javascript encodeURIComponent('£') function. The output will be expected %C2%A3.