I have a problem in JS encoding and then decoding in the C# server.
I use javascript encode() function – but when i have special chars like +, the C# has httputility.urldecode() -> and it converts it as if it was SPACE char.
What is the best way to communicate JS encoding and C# decoding?
I have <a href='javascript:foo(escape('hello +'))' />
function foo(data)
{
$.ajax({ url: "http:/....." + data, dataType: 'html', context: document.body
...
...
}
I debugged the server, and I get ‘hello++’ – it doesnt know which + is which (space or +)
Thank you!
Javascript
encodedoes html encoding. Since+is valid in HTML, it does nothing to the+.However, you are passing this string through the URL –
+on a URL means an encoded space.You need to use the javascript
encodeURIComponentif you want the+to be encoded correctly for consumption on the server side:You need to understand that HTML encoding and URL encoding are different things.