URL 인코딩에서는 "&"(앰퍼샌드)를 "&" HTML 엔티티로 간주합니다.
(GET 경유로) URL로 전달되는 문자열을 인코딩하고 있습니다.하지만 만약 내가 사용한다면escape
,encodeURI
또는encodeURIComponent
,&
로 대체됩니다.%26amp%3B
대체해 주셨으면 합니다.%26
내가 뭘 잘못하고 있지?
암호를 보지 않고서는 어둠을 찌르는 것 말고는 대답하기 어렵다.부호화하려는 문자열이올바른 사용방법인 URIComponent()는 내부 액세스 결과에서 생성됩니다.HTML 속성해결책은 대신 innerText/textContent 속성 값을 가져오는 것입니다.
var str,
el = document.getElementById("myUrl");
if ("textContent" in el)
str = encodeURIComponent(el.textContent);
else
str = encodeURIComponent(el.innerText);
그렇지 않으면 replace() 메서드를 사용하여 HTML 엔티티를 대체할 수 있습니다.
encodeURIComponent(str.replace(/&/g, "&"));
말 그대로 이렇게 했을 경우:
encodeURIComponent('&')
그러면 결과는%26
, 여기에서 테스트할 수 있습니다.당신은 인코딩은 문자열만 있는지 확인합니다. &
가 아니라&
우선...로 시작하는 것은 올바르게 인코딩되고 있는 것입니다.그럴 가능성이 높습니다.어떤 이유로 다른 결과가 필요한 경우 다음 작업을 수행할 수 있습니다..replace(/&/g,'&')
부호화 전.
HTML 및 URI 인코딩이 있습니다. &
이&
HTML에 인코딩되%26
이&
URI인코딩으로.
따라서 문자열을 인코딩하기 전에 HTML을 디코딩한 후 URI를 인코딩해야 합니다.
var div = document.createElement('div');
div.innerHTML = '&AndOtherHTMLEncodedStuff';
var htmlDecoded = div.firstChild.nodeValue;
var urlEncoded = encodeURIComponent(htmlDecoded);
결과%26AndOtherHTMLEncodedStuff
이것으로 시간이 절약되기를 바랍니다.
그걸 분명히 하기 위해서, 당신이 사용하고는 안 된다.encodeURI()
그리고.encodeURIComponent()
동의하지 않으면 결과를 보세요...
console.log(encodeURIComponent('@#$%^&*'));
입력:
^&*
.출력:
%40%23%24%25%5E%26*
.
그건 옳지 않죠, 그렇죠? *
변환되지 않았습니다!서버 사이드 클렌징 기능으로 쓰시는 게 아니길 바랍니다.*
입력으로 처리되지 않고 명령으로 처리됩니다.즉, 사용자의 주장 파일을 삭제한다고 가정해 주세요.rm *
encodeURI() 또는 encode를 사용하고 있지 않은지 확인합니다.URIComponent()!
TLDR: 와 를 실제로 필요로 합니다.
function fixedEncodeURI(str) { return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']'); }
function fixedEncodeURIComponent(str) { return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { return '%' + c.charCodeAt(0).toString(16); }); }
이러한 기능을 사용하여fixedEncodeURI()
단일 URL 조각을 인코딩하는 반면,fixedEncodeURIComponent()
는 URL 조각 및 커넥터를 인코딩합니다.또는 간단히 말하면,fixedEncodeURI()
부호화되지 않음+@?=:#;,$&
(과 같이)&
그리고.+
공통 URL 연산자)입니다만,fixedEncodeURIComponent()
할 것이다.
언급URL : https://stackoverflow.com/questions/3541711/url-encode-sees-ampersand-as-amp-html-entity
'source' 카테고리의 다른 글
주문을 유지하면서 목록에서 중복 항목을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.06 |
---|---|
문자열을 분할하여 특정 문자를 구분하려면 어떻게 해야 하나요? (0) | 2022.09.06 |
두 개의 Numpy 어레이를 동시에 섞는 더 좋은 방법 (0) | 2022.09.06 |
예기치 않은 토큰 내보내기 가져오기 (0) | 2022.09.06 |
PHP 메서드 체인 또는 유창한 인터페이스 (0) | 2022.09.06 |