[Python-de] win32net-resonse won' t properly appear on screen (Unicode-problem)?

Julian Schaefer-Jasinski julschae at t-online.de
Thu Oct 25 19:59:23 EDT 2001


hmmm, da probiere ich rum um eine anstaendige Fehlermeldung zu
produzieren und stelle fest, dass in einem Windows-Editor alle Um-
laute richtig  dargestellt werden. Halt nur nicht in der NT-Shell, wo
ich meine Programme zu debuggen pflege ;-( - hat jemand eine
Ahnung warum? In der Shell steht nur ASCII zur verfügung???

Naja, wie auch immer. Sowohl NormalString() (konvertiert
nach latin-1) als auch DebugString() (konvertiert nach UTF-8)
aus unterem Code-Beispiel funktionieren unter dem GUI von
Windows. Gibt es eine sinnvollere Methode meine Fehler-
meldung zu umgehen?

Danke nochmal,

Julian

--------------->

import win32net
import UserString

class ErrorString(UserString.UserString):
  pass

class NormalString(UserString.UserString):
  def __init__(self, data): self.data = data
  def __str__(self): return(self.data.encode('latin-1'))

class DebugString(UserString.UserString):
  def __init__(self, data): self.data = data
  def __str__(self): return(self.data.encode('UTF-8'))

def output_screen(data, method="use_normal_str"):
  if method == "use_debug_str": problem = DebugString(data)
  elif method == "error_str": problem = ErrorString(data)
  else: problem = NormalString(data)
  print problem

server="\\\Chaos"
resume = 0
nmembers = 0
while 1:
  data, total, resume = win32net.NetLocalGroupEnum(server, 1, resume)
  for group in data:
    res = "Found group %(name)s : %(comment)s " % group
    print type(res)
    output_screen(res)
    #output_screen(res, "error_str")
    #output_screen(res, "use_debug_str")
    if not resume:
      break
<----------------------

_____________________________________________________
J. Schaefer-Jasinski                                Frankfurt, Germany




More information about the Python-de mailing list