From 93838fb15565d2f780c78763939ae85cbb3e180a Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 28 Dec 2010 14:40:34 +0000 Subject: [PATCH] "patch" for a problem reported by black zero (v = self._sslobj.write(data)...UnicodeError) --- lib/core/common.py | 12 ++++++++++++ lib/request/connect.py | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/lib/core/common.py b/lib/core/common.py index 9f0fcb9c1..5f7f6a9d1 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1892,3 +1892,15 @@ def filterListValue(value, regex): return retVal else: return value + +def unicodeToSafeHTMLValue(value): + """ + Returns HTML representation of unicode + string value safe for sending over HTTP(s) + """ + retVal = value + if value: + for char in value: + if ord(char) > 127: + retVal = retVal.replace(char, "&#%d;" % ord(char)) + return retVal diff --git a/lib/request/connect.py b/lib/request/connect.py index fb25e525a..fe1fbfb92 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -22,6 +22,7 @@ from lib.core.common import calculateDeltaSeconds from lib.core.common import clearConsoleLine from lib.core.common import getCurrentThreadData from lib.core.common import getFilteredPageContent +from lib.core.common import unicodeToSafeHTMLValue from lib.core.common import getUnicode from lib.core.common import logHTTPTraffic from lib.core.common import readInput @@ -150,6 +151,11 @@ class Connect: for key, item in auxHeaders.items(): headers[key] = item + for key, item in headers.items(): + headers[key] = unicodeToSafeHTMLValue(item) + + post = unicodeToSafeHTMLValue(post) + if method: req = MethodRequest(url, post, headers) req.set_method(method)