From f20741052458d6597e915881c0c0e14549394d5a Mon Sep 17 00:00:00 2001 From: thantthet Date: Mon, 4 Jun 2018 02:35:20 +0630 Subject: [PATCH 1/2] encode payload as utf-8 --- snowplow_tracker/payload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From 39939161a5bedeb96d8f0c0271dfe24500a3dc5c Mon Sep 17 00:00:00 2001 From: thantthet Date: Fri, 8 Jun 2018 17:28:35 +0630 Subject: [PATCH 2/2] prevent casting unicode payload to str --- snowplow_tracker/emitters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)