Index: Modules/_codecsmodule.c =================================================================== --- Modules/_codecsmodule.c (révision 72274) +++ Modules/_codecsmodule.c (copie de travail) @@ -669,7 +669,7 @@ if (PyUnicode_Check(obj)) { data = PyUnicode_AS_DATA(obj); size = PyUnicode_GET_DATA_SIZE(obj); - return codec_tuple(PyBytes_FromStringAndSize(data, size), size); + return codec_tuple(PyBytes_FromStringAndSize(data, size), PyUnicode_GET_SIZE(obj)); } else { if (PyObject_AsReadBuffer(obj, (const void **)&data, &size)) Index: Lib/test/test_codecs.py =================================================================== --- Lib/test/test_codecs.py (révision 72274) +++ Lib/test/test_codecs.py (copie de travail) @@ -872,6 +872,11 @@ "UnicodeInternalTest") self.assertEquals(("ab", 12), ignored) + def test_encode_length(self): + encoder = codecs.getencoder("unicode_internal") + self.assertEquals(encoder("a")[1], 1) + self.assertEquals(encoder("\xe9\u0142")[1], 2) + # From http://www.gnu.org/software/libidn/draft-josefsson-idn-test-vectors.html nameprep_tests = [ # 3.1 Map to nothing.