diff --git a/glib2/lib/glib-mkenums.rb b/glib2/lib/glib-mkenums.rb
index 04a3a31..20382df 100644
--- a/glib2/lib/glib-mkenums.rb
+++ b/glib2/lib/glib-mkenums.rb
@@ -96,6 +96,7 @@ GType #{@enum_name}_get_type (void);
def self.parse(data, g_type_prefix, options={})
options ||= {}
enums = []
+ data.force_encoding("utf-8") if data.respond_to?(:force_encoding)
data.scan(/^\s*typedef\s+enum\s*
\{?\s*(.*?)
\}\s*(\w+);/mx){|constants, name|