Skip to content

Commit ac89e65

Browse files
committed
Correctly calculate string length based on encoded length
1 parent 35709cb commit ac89e65

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

qpython/qwriter.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,12 @@ def _write_string(self, data):
165165
if not self._options.single_char_strings and len(data) == 1:
166166
self._write_atom(ord(data), QCHAR)
167167
else:
168-
self._buffer.write(struct.pack('=bxi', QSTRING, len(data)))
169168
if isinstance(data, str):
170-
self._buffer.write(data.encode(self._encoding))
169+
encoded_data = data.encode(self._encoding)
170+
self._buffer.write(struct.pack('=bxi', QSTRING, len(encoded_data)))
171+
self._buffer.write(encoded_data)
171172
else:
173+
self._buffer.write(struct.pack('=bxi', QSTRING, len(data)))
172174
self._buffer.write(data)
173175

174176

0 commit comments

Comments
 (0)