diff --git a/tests/test_wrappers.py b/tests/test_wrappers.py index 6fd96e2716..c220036784 100644 --- a/tests/test_wrappers.py +++ b/tests/test_wrappers.py @@ -850,6 +850,11 @@ def generate_items(): assert resp.response == ['foo', 'bar', 'baz'] +def test_response_content_length_uses_encode(): + r = wrappers.Response(u'你好') + assert r.calculate_content_length() == 6 + + def test_form_data_ordering(): class MyRequest(wrappers.Request): parameter_storage_class = ImmutableOrderedMultiDict diff --git a/werkzeug/wrappers.py b/werkzeug/wrappers.py index 53b91b84fb..be979e0b75 100644 --- a/werkzeug/wrappers.py +++ b/werkzeug/wrappers.py @@ -937,7 +937,7 @@ def calculate_content_length(self): self._ensure_sequence() except RuntimeError: return None - return sum(len(x) for x in self.response) + return sum(len(x) for x in self.iter_encoded()) def _ensure_sequence(self, mutable=False): """This method can be called by methods that need a sequence. If