Tôi mã hóa một chuỗi sẽ được chuyển vào URL (qua GET). Nhưng nếu tôi sử dụng escape
, encodeURI
hoặc encodeURIComponent
, &
sẽ được thay thế bằng %26amp%3B
, nhưng tôi muốn nó được thay thế bằng %26
. Tôi đang làm gì sai?Mã hóa URL thấy “&” (dấu và) là “&” Thực thể HTML
Trả lời
Nếu không nhìn thấy mã của bạn, thật khó để trả lời khác hơn là đâm trong bóng tối. Tôi đoán chuỗi bạn đang chuyển đến encodeURIComponent(), là phương pháp chính xác để sử dụng, đến từ kết quả truy cập thuộc tính innerHTML. Giải pháp là để có được những innerText/textContent giá trị tài sản thay vì:
var str,
el = document.getElementById("myUrl");
if ("textContent" in el)
str = encodeURIComponent(el.textContent);
else
str = encodeURIComponent(el.innerText);
Nếu đó không phải là trường hợp, bạn có thể sử dụng replace() phương pháp để thay thế các thực thể HTML:
encodeURIComponent(str.replace(/&/g, "&"));
Nếu bạn đã làm theo nghĩa đen này:
encodeURIComponent('&')
Sau đó, kết quả là %26
, you can test it here. Đảm bảo chuỗi bạn đang mã hóa là chỉ cần&
và không phải là &
để bắt đầu bằng ... nếu không mã hóa được mã hóa chính xác, có khả năng là trường hợp. Nếu bạn cần một kết quả khác vì một lý do nào đó, bạn có thể thực hiện .replace(/&/g,'&')
trước khi mã hóa.
... đó có lẽ là vấn đề của mình. –
Có mã hóa HTML và URI. &
là &
encoded in HTML trong khi %26
là &
trong URI encoding.
Vì vậy, trước khi URI mã hóa chuỗi của bạn, bạn có thể muốn sang HTML decode và sau đó URI mã hóa nó :)
var div = document.createElement('div');
div.innerHTML = '&AndOtherHTMLEncodedStuff';
var htmlDecoded = div.firstChild.nodeValue;
var urlEncoded = encodeURIComponent(htmlDecoded);
kết quả %26AndOtherHTMLEncodedStuff
Hy vọng điều này giúp bạn tiết kiệm một số thời gian
- 1. Mã hóa chuỗi Android và thực thể html chuyển đổi
- 2. Giá trị mã hóa Url và dấu cách
- 3. Sự khác biệt giữa Mã hóa Url và mã hóa HTML
- 4. Làm cách nào để mã hóa/giải mã các thực thể HTML trong Ruby?
- 5. Mã hóa HTML trước POST
- 6. Mã thực thể HTML thành văn bản
- 7. XHTML và & (và) mã hóa
- 8. Mã hóa url url php
- 9. ModelState.AddModelError mã hóa HTML
- 10. JavaScript bookmarklet và URL mã hóa
- 11. Mã hóa url% 2526 là gì?
- 12. php file_get_contents và &
- 13. Tại sao URL dấu phẩy được mã hóa?
- 14. Mã hóa HTML trong Flex/Actionscript
- 15. Mã hóa URL ASP.Net
- 16. Zend Framework: URL mã hóa giải mã Apache thay vì chuyển URL được mã hóa?
- 17. htmlentities() thực thể mã hóa kép trong chuỗi
- 18. Cách giải mã các thực thể HTML số trong PHP
- 19. Làm thế nào để đúng url mã hóa dấu?
- 20. slash URL mã hóa trong URL
- 21. ASP.Net C# Razor thấy HTML mã hóa thay vì html liệu
- 22. HTML và mã hóa thuộc tính
- 23. Giải mã tất cả các thực thể HTML
- 24. Giải mã các thực thể HTML trong android
- 25. Phương pháp được tích hợp để mã hóa ký hiệu và các url trong url được trả về từ Url.Action?
- 26. Jinja 2 - Django Form: rendering mã hóa HTML
- 27. Chế độ mã hóa mã hóa và xác thực
- 28. JsonResult với mã hóa Html
- 29. Mã hóa url Drupal
- 30. Vô hiệu hóa mã hóa thực thể html trong PHP DOMDocument
đâu chuỗi đến từ? Bạn có thể đăng các mã bạn có cho đến nay? –
'&' là cách thích hợp để thoát khỏi dấu và trong ngữ cảnh HTML ... nguồn của bạn đến từ đâu? và đích đến là gì? Nó có thể là tốt hơn để làm điều này phía máy chủ ví dụ. –
Tôi grap một cái gì đó từ cơ thể HTML (và đó là HTML mã hóa (vì vậy, có & Tôi nhận ra bây giờ)) và tôi phải vượt qua nó trong một URL ... Vì vậy, tôi cần phải giải mã html (nhưng làm thế nào?) vi sau đó mã hóa chuỗi (với encodeURIComponent) ... – dododedodonl