Patch for an Issue #978

This commit is contained in:
Miroslav Stampar 2014-11-29 23:33:24 +01:00
parent ab49fe6a39
commit 56b6bf72f4
3 changed files with 12 additions and 5 deletions

View File

@ -2068,6 +2068,9 @@ def getUnicode(value, encoding=None, noneToNull=False):
try:
return unicode(value, encoding or kb.get("pageEncoding") or UNICODE_ENCODING)
except UnicodeDecodeError, ex:
try:
return unicode(value, UNICODE_ENCODING)
except:
value = value[:ex.start] + "".join(INVALID_UNICODE_CHAR_FORMAT % ord(_) for _ in value[ex.start:ex.end]) + value[ex.end:]
else:
try:

View File

@ -145,17 +145,21 @@ def htmlunescape(value):
return retVal
def singleTimeWarnMessage(message): # Cross-linked function
raise NotImplementedError
sys.stdout.write(message)
sys.stdout.write("\n")
sys.stdout.flush()
def stdoutencode(data):
retVal = None
try:
data = data or ""
# Reference: http://bugs.python.org/issue1602
if IS_WIN:
output = data.encode("ascii", "replace")
output = data.encode(sys.stdout.encoding, "replace")
if output != data:
if '?' in output:
warnMsg = "cannot properly display Unicode characters "
warnMsg += "inside Windows OS command prompt "
warnMsg += "(http://bugs.python.org/issue1602). All "

View File

@ -791,7 +791,7 @@ def cmdLineParser():
advancedHelp = True
for arg in sys.argv:
argv.append(getUnicode(arg, encoding=sys.stdin.encoding))
argv.append(getUnicode(arg, encoding=sys.getfilesystemencoding()))
checkDeprecatedOptions(argv)