Re: How to enable pywin to evaluate -X utf8 flag
Mark Hammond <[email protected]> Thu, 1 Jun 2023 11:05:29 -0400
| Newsgroups | gmane.comp.python.windows |
|---|---|
| Message-ID | <[email protected]> |
https://github.com/mhammond/pywin32/blob/main/win32/Demos/service/nativePipeTestService.py is a demo of using a service using python.exe and supports specifying the command-line, so that might be an option? Mark On 2023-06-01 5:28 a.m., Gualtiero Scotti wrote: > Hi, I need to start my python application through windows service. For > this purpose I use pywin32. > I'm not able to make a Python instance to evaluate the -X uf8 flag. > > This flag must be passed during python invocation only and not when it > is already started. > After some investigations I've found the service launch > *pythonservice.exe* wrapper but I don't know how to pass the flag to > the Python interpreter. > > Is there another option to set this flag? It is possible to set an env > variable *PYTHONUTF8=1 * but pythonservice.exe doesn't seem to > evaluate it... > * > * > *My environment* > *- Windows 11 Home 22H2* > *- Python 3.11.1* (tags/v3.11.1:a7a450f, Dec 6 2022, 19:43:28) [MSC > v.1934 32 bit (Intel)] on win32 > - *Pywin32 305* > - *Pywin32-ctypes 0.2.0* > > *Python documentation* > > > 4.7. UTF-8 mode¶ > <https://docs.python.org/3/using/windows.html#utf-8-mode> > > New in version 3.7. > > Windows still uses legacy encodings for the system encoding (the ANSI > Code Page). Python uses it for the default encoding of text files > (e.g. |locale.getencoding()| > <https://docs.python.org/3/library/locale.html#locale.getencoding>). > > This may cause issues because UTF-8 is widely used on the internet and > most Unix systems, including WSL (Windows Subsystem for Linux). > > You can use the Python UTF-8 Mode > <https://docs.python.org/3/library/os.html#utf8-mode> to change the > default text encoding to UTF-8. You can enable the Python UTF-8 Mode > <https://docs.python.org/3/library/os.html#utf8-mode> via the |-X > utf8| command line option, or the |PYTHONUTF8=1| environment variable. > See |PYTHONUTF8| > <https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8> for > enabling UTF-8 mode, and Excursus: Setting environment variables > <https://docs.python.org/3/using/windows.html#setting-envvars> for how > to modify environment variables. > > When the Python UTF-8 Mode > <https://docs.python.org/3/library/os.html#utf8-mode> is enabled, you > can still use the system encoding (the ANSI Code Page) via the “mbcs” > codec. > > Note that adding |PYTHONUTF8=1| to the default environment variables > will affect all Python 3.7+ applications on your system. If you have > any Python 3.7+ applications which rely on the legacy system encoding, > it is recommended to set the environment variable temporarily or use > the |-X utf8| command line option. > > 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* > <https://peps.python.org/pep-0528/> for details). > > * > > The filesystem encoding > <https://docs.python.org/3/glossary.html#term-filesystem-encoding-and-error-handler> (see > *PEP 529* <https://peps.python.org/pep-0529/> for details). > > from -> https://docs.python.org/3/using/windows.html > > Please help me! > Thanks in advance > * > * > > _______________________________________________ > python-win32 mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-win32 _______________________________________________ python-win32 mailing list [email protected] https://mail.python.org/mailman/listinfo/python-win32