色々と試しましたが、この方法が最適です。web serverとしても、localで起動する場合も文字化けしません。
import io
import os
import sys
html_body = 'HTMLの形式です'
if type(sys.stdout) == io.TextIOWrapper:
sys.stdout = io.TextIOWrapper(
sys.stdout.buffer,
encoding='utf-8'
print ('Content-type: text/html; charset=UTF-8\r\n')
print (html_body)