diff --git a/Cargo.toml b/Cargo.toml
index 94ed9ea..576da49 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,6 +31,7 @@ serde_derive = "1.0.104"
 serde_json = "1.0.44"
 pyo3 = "0.8.5"
 toml = "0.5.5"
+escaper = "0.1.0"
 
 [dependencies.diesel]
 version = "1.4.3"
@@ -38,4 +39,4 @@ features = ["sqlite"]
 
 [dependencies.reqwest]
 version = "0.10.3"
-features = ["blocking", "gzip", "json"]
\ No newline at end of file
+features = ["blocking", "gzip", "json"]
diff --git a/src/helper.rs b/src/helper.rs
index 98a5ade..76740f5 100644
--- a/src/helper.rs
+++ b/src/helper.rs
@@ -94,6 +94,7 @@ mod filter {
 mod html {
     // use crate::Error;
     use colored::Colorize;
+    use escaper::decode_html;
     pub enum Token {
         Plain(String),
         Bold(String),
@@ -109,15 +110,7 @@ mod html {
     impl HTML for String {
         fn ser(&self) -> Vec<Token> {
             // empty tags
-            let mut tks = self.to_string();
-
-            // converting symbols
-            tks = tks
-                .replace(r#"&amp;"#, "&")
-                .replace(r#"&quot;"#, "\"")
-                .replace(r#"&nbsp;"#, " ")
-                .replace(r#"&#39;"#, "'");
-
+            let tks = self.to_string();
             let res: Vec<Token>;
             // styled
             {
@@ -180,14 +173,9 @@ mod html {
             }
 
             // post replace
-            let mut tks = tks.join("");
-            tks = tks
-                .replace(r#"&lt;"#, "<")
-                .replace(r#"&gt;"#, ">")
-                .replace(r#"&ge;"#, ">=")
-                .replace(r#"&le;"#, "<=");
-
-            tks
+            let tks = tks.join("");
+
+            decode_html(&tks).unwrap_or(tks)
         }
     }
 }