windows preview bug fix

José Matos jaomatos at gmail.com
Fri Feb 23 11:48:09 UTC 2024


On Sat, 2024-02-17 at 10:41 +0100, Enrico Forestieri wrote:
> On Fri, Feb 16, 2024 at 03:28:25PM +0000, José Matos wrote:
> > 
> > On Fri, 2024-02-16 at 15:23 +0200, Idan Pazi wrote:
> > > 
> > > Apparently, the returned value from win32file.ReadFile should be
> > > converted to a string. 
> > 
> > > Fix patch attached.
> > > Thank you, Idan
> > 
> > What is the encoding of the bytes? Is it UTF8?
> > If so the patch look right.
> > 
> > @Enrico, what do you think?
> 
> I don't have a native Windows python 3 installation and the python 
> distributed with LyX on Windows doesn't include PyWin extension
> modules. 
> Thus I cannot test that code. However, I don't think that 
> win32file.ReadFile() returns utf8. Most probably it returns some 8-
> bit 
> encoding corresponding to the current code page. But, even using 
> win32file.ReadFileW() (assuming it exists) that would return utf16.
> 
> -- 
> Enrico

@Idan, I agree with Enrico. So I am also puzzled why this works.

What is the output that you get from the following code?

import sys
print(sys.flags.utf8_mode)

The UTF-8 mode that was introduced in Python 3.7 and will be the
default in Python 3.15.

In https://docs.python.org/3/using/windows.html#win-utf8-mode

it reads:

"""
Note

Even when UTF-8 mode is disabled, Python uses UTF-8 by default on
Windows for:

* Console I/O including standard I/O (see PEP 528 for details).
* The filesystem encoding (see PEP 529 for details).
"""

So I am not sure if the code works because of the last remark...

-- 
José Abílio


More information about the lyx-devel mailing list