回答
轉義HTML確實只涉及替換三個字符:<
,>
和&
。要獲得額外的積分,您還可以更換"
和'
。因此,它不是一個很長sed
腳本:
sed 's/&/\&/g; s/</\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g'
無法評論還,所以這裏有一個新的答案:
以前sed替換毀損像
<
有效輸出到
&lt;
添加負loook超前如此「&」只改爲「& amp」如果那個「&」還沒有跟着「amp」修復:
sed 's/&(?!amp;)/\&/g; s/</\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g'
大錯誤。當我對一個字符串「&」進行HTML編碼時,這是因爲我想讓它通過一些網絡瀏覽器呈現爲「&」。這就是爲什麼它必須變成'& amp'。這樣,HTML編碼和HTML解碼就處於平衡狀態。您不會僅僅因爲輸入_looks like_它已經被HTML編碼就抑制HTML編碼。 HTML編碼不是**冪等的。沒有把握,最終導致XSS漏洞。 –
@Ruud是對的;實現這一目標的正確方法是首先逃避&符號,就像在ruakh的答案中一樣。 –
我完全同意@Ruud的說法,但他應該強調**未能把握導致XSS漏洞** – kmkaplan
可以使用recode
工具:
echo 'He said: "Not sure that - 2<1"' | recode ascii..html
輸出:
He said: "Not sure that - 2<1"
如果沒有Python/Ruby/Perl,可能不可用。 – tbodt
- 1. 更簡短的定義自定義JavaScript異常的方法?
- 2. HTML文檔中回聲的簡短方法?
- 3. 在UNIX中擴展HTML轉義碼的最簡單方法是什麼?
- 4. 在簡單的bash腳本中轉義空格
- 5. 檢索NeutralResourcesLanguageAttribute搜索的簡短方法
- 6. 編寫事件的簡短方法?
- 7. 簡單的方法來查找在bash中的宏的細節?
- 8. 在MDX中指定集合的更簡短的方法
- 9. 在Rails中轉義這個HTML的正確方法
- 10. 在bash中,如何轉義「{}」?
- 11. 在MySQL中創建簡短唯一ID的最佳方法
- 12. 在jquery中尋找關鍵短語的簡單方法?
- 13. 在OCaml中傳遞零元函數的簡短方法
- 14. Bash轉義和語法
- 15. jQuery的不解析以html轉義的HTML()方法
- 16. 在bash中打印結構化SQL SELECT的簡單方法
- 17. 在bash中替換輸出線的簡單方法
- 18. 用Symfony2中的數據預填表格,更簡短的方法
- 19. 解析不在逗號之間的空格的簡短方法?
- 20. bash,在bash中的SQL語句中轉義撇號
- 21. 最簡單的方法:在XML文檔中的HTML中斷
- 22. .Net將字符串轉換爲HTML轉義字符的方法
- 23. HAML中的markdown中的HTML轉義HTML
- 24. 將swf橫幅廣告轉換爲html的最簡單方法
- 25. 將xml轉換爲html最簡單的方法是什麼?
- 26. 有沒有一種簡單的方法在JavaScript中將文本轉換爲HTML?
- 27. 在bash中的bash中跳轉方括號if if
- 28. 如何在Rails 3.1控制器方法中轉義HTML?
- 29. bash`find`轉義
- 30. Sed BASH轉義
看起來不錯,謝謝你 –
@JamesEvans:不客氣! – ruakh
+1優雅和高效。你應該在這裏發佈你的答案:http://stackoverflow.com/questions/5929492/bash-script-to-convert-from-html-entities-to-characters他們建議安裝'recode','perl','php ','xmlsarlet'和'w3m'(一個網頁瀏覽器大聲哭泣)。最後一個答案建議使用Python3,儘管默認情況下安裝(至少在Ubuntu中)也是過度的。 – WinEunuuchs2Unix