Skip to content

v11.12.2

Choose a tag to compare

@doronz88 doronz88 released this 10 Sep 16:14
· 8 commits to master since this release
fa40e20

Highlights

馃悰 syslog live no longer dies on characters the console can't encode

On Windows, pymobiledevice3 syslog live could run for hours and then exit with
UnicodeEncodeError: 'charmap' codec can't encode characters (#1942). The console handed Python a
strict cp1252 stdout, and the first syslog line carrying an emoji, an arrow or CJK text made
print() raise. This affected any command that prints device-supplied text, not only syslog.

The CLI now reconfigures stdout and stderr with errors="backslashreplace": such characters are
printed as \U0001f600-style escapes instead of killing the command. The syslog live --out file
is always written as UTF-8 rather than in the host locale encoding, so the tee file keeps the
original characters and doesn't hit the same crash.

pymobiledevice3 syslog live -o device.log

Thanks to @rob-X1 for reporting and verifying the fix.

What's Changed

Full Changelog: v11.12.1...v11.12.2