Merge pull request #230 from pre-commit/debug_statements_non_utf8

debug statements hook works for non-utf8 files
diff --git a/pre_commit_hooks/debug_statement_hook.py b/pre_commit_hooks/debug_statement_hook.py
index d76e6e6..c5ca387 100644
--- a/pre_commit_hooks/debug_statement_hook.py
+++ b/pre_commit_hooks/debug_statement_hook.py
@@ -35,7 +35,7 @@
 
 def check_file_for_debug_statements(filename):
     try:
-        ast_obj = ast.parse(open(filename).read(), filename=filename)
+        ast_obj = ast.parse(open(filename, 'rb').read(), filename=filename)
     except SyntaxError:
         print('{} - Could not parse ast'.format(filename))
         print()
diff --git a/tests/debug_statement_hook_test.py b/tests/debug_statement_hook_test.py
index 6d8d7d8..8832245 100644
--- a/tests/debug_statement_hook_test.py
+++ b/tests/debug_statement_hook_test.py
@@ -1,3 +1,7 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
 import ast
 
 import pytest
@@ -77,3 +81,9 @@
 def test_syntaxerror_file():
     ret = debug_statement_hook([get_resource_path('cannot_parse_ast.notpy')])
     assert ret == 1
+
+
+def test_non_utf8_file(tmpdir):
+    f_py = tmpdir.join('f.py')
+    f_py.write_binary('# -*- coding: cp1252 -*-\nx = "€"\n'.encode('cp1252'))
+    assert debug_statement_hook((f_py.strpath,)) == 0