diff --git a/libmat2/web.py b/libmat2/web.py
index b77020092c879d1574639a2549a40c690f04c571..2864d6064c76ffe30ebc6ff971349115fea171ac 100644
--- a/libmat2/web.py
+++ b/libmat2/web.py
@@ -17,7 +17,11 @@ class CSSParser(abstract.AbstractParser):
 
     def remove_all(self) -> bool:
         with open(self.filename, encoding='utf-8') as f:
-            cleaned = re.sub(r'/\*.*?\*/', '', f.read(), 0, self.flags)
+            try:
+                content = f.read()
+            except UnicodeDecodeError:  # pragma: no cover
+                raise ValueError
+            cleaned = re.sub(r'/\*.*?\*/', '', content, 0, self.flags)
         with open(self.output_filename, 'w', encoding='utf-8') as f:
             f.write(cleaned)
         return True
@@ -25,7 +29,11 @@ class CSSParser(abstract.AbstractParser):
     def get_meta(self) -> Dict[str, Any]:
         metadata = {}
         with open(self.filename, encoding='utf-8') as f:
-            cssdoc = re.findall(r'/\*(.*?)\*/', f.read(), self.flags)
+            try:
+                content = f.read()
+            except UnicodeDecodeError:  # pragma: no cover
+                raise ValueError
+        cssdoc = re.findall(r'/\*(.*?)\*/', content, self.flags)
         for match in cssdoc:
             for line in match.splitlines():
                 try: