diff --git a/hiyapyco/__init__.py b/hiyapyco/__init__.py
index <HASH>..<HASH> 100644
--- a/hiyapyco/__init__.py
+++ b/hiyapyco/__init__.py
@@ -25,6 +25,7 @@ import yaml
 import logging
 from distutils.util import strtobool
 import re
+import io
 from jinja2 import Environment, Undefined, DebugUndefined, StrictUndefined, TemplateError
 
 from . import odyldo
@@ -163,6 +164,12 @@ class HiYaPyCo():
             logger.setLevel(kwargs['loglevel'])
             del kwargs['loglevel']
 
+        # default to platform default encoding
+        self.encoding = None
+        if 'encoding' in kwargs:
+            self.encoding = kwargs['encoding']
+            del kwargs['encoding']
+
         if kwargs:
             raise HiYaPyCoInvocationException('undefined keywords: %s' % ' '.join(kwargs.keys()))
 
@@ -183,7 +190,7 @@ class HiYaPyCo():
                     fn = os.path.join(os.getcwd(), yamlfile)
                     logger.debug('path extended for yamlfile: %s' % fn)
                 try:
-                    f = open(fn, 'r')
+                    f = io.open(fn, 'r', encoding=self.encoding)
                     logger.debug('open4reading: file %s' % f)
                 except IOError as e:
                     logger.log(self.loglevelonmissingfiles, e)
ISSUE-<I> Used io.open with user-provided encoding