From 9b18bd674e5e87a6fc5ae1fae4915567b6dd75cf Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 13 Apr 2014 14:57:45 +0530 Subject: [PATCH] Workaround for broken linux installs with encoding set to ANSI_X3.4-1968 Got a second bug report from a user running such a system today. So workaround it. --- src/calibre/utils/icu.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/utils/icu.py b/src/calibre/utils/icu.py index 6b9bec13ab..c1221f0614 100644 --- a/src/calibre/utils/icu.py +++ b/src/calibre/utils/icu.py @@ -30,9 +30,10 @@ del err icu_unicode_version = getattr(_icu, 'unicode_version', None) _nmodes = {m:getattr(_icu, 'UNORM_'+m, None) for m in ('NFC', 'NFD', 'NFKC', 'NFKD', 'NONE', 'DEFAULT', 'FCD')} +ascii_encodings = {b'ansi_x3.4-1968', b'ascii'} try: senc = sys.getdefaultencoding() - if not senc or senc.lower() == b'ascii': + if not senc or senc.lower() in ascii_encodings: _icu.set_default_encoding(b'utf-8') del senc except: @@ -41,12 +42,13 @@ except: try: fenc = sys.getfilesystemencoding() - if not fenc or fenc.lower() == b'ascii': + if not fenc or fenc.lower() in ascii_encodings: _icu.set_filesystem_encoding(b'utf-8') del fenc except: import traceback traceback.print_exc() +del ascii_encodings def collator(): global _collator, _locale