[proxy] github.com← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

gh-74940: Allow fallback to UTF-8 encoding on systems with no locales installed. by gordonmessmer · Pull Request #14925 · python/cpython

the-knights-who-say-ni

mattheww mannequin mentioned this pull request

Apr 10, 2022

Closed

… installed.

arhadthedev changed the title bpo-30755: Allow fallback to UTF-8 encoding on systems with no locales installed. gh-74940: Allow fallback to UTF-8 encoding on systems with no locales installed.

Apr 26, 2023

itamaro pushed a commit to itamaro/cpython that referenced this pull request

Apr 26, 2023
…ocales installed (pythonGH-14925)

This change removes the alias of the 'C' locale to 'en_US'. Because of
this alias, it is currently impossible for an application to use
setlocale() to specify a UTF-8 locale on a system that has no locales
installed, but which supports the C.UTF-8 locale/encoding.

kkalinowski-reef added a commit to reef-technologies/b2-sdk-python that referenced this pull request

Dec 4, 2023
- On Linux, C.UTF-8 locale is now part of the standard. macOS and Windows
  use en_US.UTF-8 instead.
- Up to 3.11, `locale.normalize` was converting `C.UTF-8` into `en_US.UTF-8`.
  If you normalized the locale string, it was impossible to set `C.UTF-8`.
- In 3.12, `C.UTF-8` maps to itself.
- python/cpython#14925
- https://peps.python.org/pep-0538/
- `C.UTF-8` doesn't seem to be used anywhere else in the codebase, except for this one test.
- Other fix would be to inject a previous value to `locale.locale_alias` dictionary
  for certain platforms. However, this is part of the private implementation
  and could change without prior notice.
- More changes to the locale are scheduled for 3.15.

This was referenced

Dec 4, 2023

Closed

Merged

mjurbanski-reef pushed a commit to Backblaze/b2-sdk-python that referenced this pull request

Dec 5, 2023
* Fix the test that broke after 3.12 changes to locale.normalize

- On Linux, C.UTF-8 locale is now part of the standard. macOS and Windows
  use en_US.UTF-8 instead.
- Up to 3.11, `locale.normalize` was converting `C.UTF-8` into `en_US.UTF-8`.
  If you normalized the locale string, it was impossible to set `C.UTF-8`.
- In 3.12, `C.UTF-8` maps to itself.
- python/cpython#14925
- https://peps.python.org/pep-0538/
- `C.UTF-8` doesn't seem to be used anywhere else in the codebase, except for this one test.
- Other fix would be to inject a previous value to `locale.locale_alias` dictionary
  for certain platforms. However, this is part of the private implementation
  and could change without prior notice.
- More changes to the locale are scheduled for 3.15.

* Format applied

* Added changelog entry for towncrier

* Prepended + to the changelog filename, as it's not closing any GitHub ticket

* Removed TODO mentioning a broken locale in CI

* Re-enabled 3.12 test matrix for both Windows and macOS

Merged