diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py index 86d8566ff70..75e50831a71 100644 --- a/lib/ansible/module_utils/basic.py +++ b/lib/ansible/module_utils/basic.py @@ -840,7 +840,12 @@ class AnsibleModule(object): self.fail_json(msg='Boolean %s not in either boolean list' % arg) def jsonify(self, data): - return json.dumps(data) + for encoding in ("utf-8", "latin-1", "unicode_escape"): + try: + return json.dumps(data, encoding=encoding) + except UnicodeDecodeError, e: + continue + self.fail_json(msg='Invalid unicode encoding encountered') def from_json(self, data): return json.loads(data)