]> git.phdru.name Git - m_lib.defenc.git/blob - m_lib/defenc.py
Fix(locale): Do not call `locale.getdefaultlocale()` under Python 3.11+
[m_lib.defenc.git] / m_lib / defenc.py
1 #! /usr/bin/env python
2 """Get default encoding"""
3
4 from __future__ import print_function
5 import sys
6
7 try:
8    import locale
9    use_locale = True
10 except ImportError:
11    use_locale = False
12
13 __all__ = ['default_encoding']
14
15 if use_locale:
16    # Get the default charset.
17    try:
18       if sys.version_info[:2] < (3, 11):
19          lcAll = locale.getdefaultlocale()
20       else:
21          lcAll = []
22    except locale.Error as err:
23       print("WARNING:", err, file=sys.stderr)
24       lcAll = []
25
26    if len(lcAll) == 2 and lcAll[0] is not None:
27       default_encoding = lcAll[1]
28    else:
29       try:
30          default_encoding = locale.getpreferredencoding()
31       except locale.Error as err:
32          print("WARNING:", err, file=sys.stderr)
33          default_encoding = sys.getdefaultencoding()
34 else:
35    default_encoding = sys.getdefaultencoding()
36
37 default_encoding = default_encoding.lower()
38
39 if __name__ == "__main__":
40    print(default_encoding)