Escape solve filter URL transfer value problem, when using Ajax to pass the value, encountered special symbol filtering problem, special symbol test
xml/html Code 01. Special Symbol Test HA: ~!@#$&%^* () <> how are you? <script>alert ("Hello World");</script>
Because there is a & symbol inside a special character, it is treated as a join symbol & when the data type passes multiple passes, so the string that follows is passed as a parameter value.
Solving method
Use should be encodeuricomponent, it is the Chinese, Korean and other special characters into the utf-8 format of the URL encoding, So if you need to use encodeURIComponent when passing parameters to the background, you need background decoding for utf-8 support (the form is encoded in the same way as the current page encoding)
Escape does not encode 69 characters: *,+,-,.,/,@,_,0-9,a-z,a-z
There are 82 encodeURI not encoded characters:!,#,$,&, ', (,), *,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
There are 71 encodeuricomponent characters that are not encoded:!, ', (,), *,-,.,_,~,0-9,a-z,
The solution is as follows (alternative solution):
JavaScript code
The code is as follows |
Copy Code |
var tradition_content = Tradition_content.replace ("&", Escape (' & '));//tradition_content |
The string to convert
To convert all &
code is as follows |
copy code |
var Repand = /&/g; var tradition_content = Tradition_content.replace (Repand, Escape (' & ')); //tradition_content the string to convert |