diff --git a/snowplow_tracker/emitters.py b/snowplow_tracker/emitters.py index 2eccb0fb..20910580 100644 --- a/snowplow_tracker/emitters.py +++ b/snowplow_tracker/emitters.py @@ -154,7 +154,7 @@ def input(self, payload): self.bytes_queued += len(str(payload)) if self.method == "post": - self.buffer.append({key: str(payload[key]) for key in payload}) + self.buffer.append({key: (str(payload[key]) if not isinstance(payload[key], unicode) else payload[key]) for key in payload}) else: self.buffer.append(payload) diff --git a/snowplow_tracker/payload.py b/snowplow_tracker/payload.py index c7c788b5..894505c7 100644 --- a/snowplow_tracker/payload.py +++ b/snowplow_tracker/payload.py @@ -82,7 +82,7 @@ def add_json(self, dict_, encode_base64, type_when_encoded, type_when_not_encode json_dict = json.dumps(dict_, ensure_ascii=False) if encode_base64: - encoded_dict = base64.urlsafe_b64encode(json_dict.encode("ascii")) + encoded_dict = base64.urlsafe_b64encode(json_dict.encode("utf-8")) if not isinstance(encoded_dict, str): encoded_dict = encoded_dict.decode("utf-8") self.add(type_when_encoded, encoded_dict)