Я рекомендую внимательно изучить Поставщик услуг Java (SPI) API . Это обеспечивает простую систему для нахождения, что все классы всего Раздражают путь к классу, которые представляют себя как реализация конкретного сервиса. Я использовал его в прошлом со сменными системами с большим успехом.
Решение:
#!/usr/bin/python
import sys
def print(s): return sys.stdout.buffer.write(s.encode('utf-8'))
print("Content-type:text/plain;charset=utf-8\n\n")
print('晉\n')
См. Исходное обсуждение здесь: http://groups.google.com/group/comp.lang.python/msg/f8bba45e55fe605c
обычно мне нравится это s = s.replace ("\ n", "
\ n")
, потому что
требуется для отображения веб-страницы, а
\ n
требуется для отображения источника.
только мои 2 цента
Может быть, я не понимаю, но разве
не новая строка для HTML?
s = "Hello HTML\n"
to_render = s.replace("\n", "<br />")
Если вы визуализируете что-то с mimetype ] "text / plain"
\ n
ewlines должны работать.
Print () должен по умолчанию добавлять новую строку - если вы не укажете иное. Однако в Python 3 были внесены и другие изменения:
Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!
Старый = Python 2.5, Новый = Python 3.
Подробнее здесь: http://docs.python.org/3.1/whatsnew/3.0.html