최근 URL을 이용해 특수문자를 전송할 때 데이터가 손실되는 현상을 발견했습니다.
실제로는 사라지지 않습니다. 예를 들어 '+'는 연결 문자로 처리됩니다.
1. 16진수 문자로 대체합니다.
+ |
空格 |
/ |
? |
% |
& |
= |
# |
%2B |
%20 |
%2F |
%3F |
%25 |
%26 |
&3D |
%23 |
var post_Str = apply_name.replace(/+/g, "%2B ");//"+"탈출
var post_Str= post_Str.replace(/&/g, "%26");//"&"
var post_Str= post_Str.replace(/#/g, "%23");//"#"
2. 다른 특수 문자가 나타나면 다음 방법을 사용하여 무엇으로 변환할지 확인할 수 있습니다.
alert(encodeURIComponent("-"));// 트랜스코딩, 결과를 얻어도 괜찮습니다. 아래는 여기서 사용되지 않은 디코딩입니다.
Alert(decodeURIComponent(encodeURIComponent("#")));