diff --git a/requests_html.py b/requests_html.py
index 48e7fb2..a95276b 100644
--- a/requests_html.py
+++ b/requests_html.py
@@ -95,7 +95,7 @@ def raw_html(self) -> _RawHTML:
if self._html:
return self._html
else:
- return etree.tostring(self.element, encoding='unicode').strip().encode(self.encoding)
+ return etree.tostring(self.element, encoding='unicode', method='html').strip().encode(self.encoding)
@property
def html(self) -> _BaseHTML:
@@ -105,7 +105,7 @@ def html(self) -> _BaseHTML:
if self._html:
return self.raw_html.decode(self.encoding, errors='replace')
else:
- return etree.tostring(self.element, encoding='unicode').strip()
+ return etree.tostring(self.element, encoding='unicode', method='html').strip()
@html.setter
def html(self, html: str) -> None:
@@ -229,7 +229,7 @@ def find(self, selector: str = "*", *, containing: _Containing = None, clean: bo
elements = []
for element in elements_copy:
- element.raw_html = lxml_html_tostring(cleaner.clean_html(element.lxml))
+ element.raw_html = lxml_html_tostring(cleaner.clean_html(element.lxml,encoding='utf8'))
elements.append(element)
return _get_first_or_list(elements, first)