I checked out "seen" and ran the test script from this patch (t9835-git-p4-message-encoding.sh) on my Windows machine and it fails. I don't think the solution in this patch will solve the issue of non UTF-8 descriptions on Windows. The interaction between git-p4.py and p4 around non-ASCII descriptions is different on Linux and Windows (at least with the default code page settings). Unfortunately the CI on gitlab does not include any Windows test environments that have p4 installed. As far as I can tell, non-ASCII strings passed to "p4 submit -d" pass unchanged to the Perforce database on Linux. As well, such data also passes unchanged in the other direction, when "p4" output is consumed by git-p4.py. Since this patch avoids decoding descriptions, and the test script uses binary data for descriptions, the tests pass on Linux. However, on Windows, UTF-8 strings passed to "p4 submit -d" are somehow converted to the default Windows code page by the time they are stored in the Perforce database, probably as part of the process of passing the command line arguments to the Windows p4 executable. However, the "code page" data is *not* converted to UTF-8 on the way back from p4 to git-p4.py. The only way to get it into UTF-8 is to call string.decode(). As a result, this patch, which takes out the call to string.decode() will not work on Windows.