Changeset 3298 for pykota/trunk/pykota/utils.py
- Timestamp:
- 01/24/08 10:12:48 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/utils.py
r3295 r3298 40 40 charset = sys.stdout.encoding or sys.getfilesystemencoding() 41 41 42 # Dirty hack : if the charset is ASCII, we can safely use UTF-8 instead 43 # This has the advantage of allowing transparent support for recent 44 # versions of CUPS which (en-)force charset to UTF-8 when printing. 45 # This should be needed only when printing, but is probably (?) safe 46 # to do when using interactive commands. 47 if charset.upper() in ('ASCII', 'ANSI_X3.4-1968') : 42 if (not charset) or charset in ("ASCII", "ANSI_X3.4-1968") : 48 43 charset = "UTF-8" 44 49 45 return (language, charset) 50 46 47 def setenv(varname, value, charset) : 48 """Sets an environment variable.""" 49 if value is None : 50 value = "None" 51 os.environ[varname] = value.encode(charset, "replace") 52 51 53 def initgettext(lang, cset) : 52 54 """Initializes gettext translations for PyKota.""" … … 86 88 87 89 def databaseToUnicode(text) : 88 """Converts from database format (UTF-8) to unicode.""" 90 """Converts from database format (UTF-8) to unicode. 91 92 We use "replace" to accomodate legacy datas which may not 93 have been recorded correctly. 94 """ 89 95 if text is not None : 90 96 return text.decode("UTF-8", "replace") … … 95 101 """Converts from unicode to database format (UTF-8).""" 96 102 if text is not None : 97 return text.encode("UTF-8" , "replace")103 return text.encode("UTF-8") 98 104 else : 99 105 return None … … 101 107 def logerr(text) : 102 108 """Logs an unicode text to stderr.""" 103 sys.stderr.write(text.encode(sys.stdout.encoding or locale.getlocale()[1], \ 109 sys.stderr.write(text.encode(sys.stdout.encoding \ 110 or locale.getlocale()[1] \ 111 or "ANSI_X3.4-1968", \ 104 112 "replace")) 105 113 sys.stderr.flush()