moin,
Der HTTP-header ist text/html; charset=utf-8
Da musst Du nur die richtigen Bytes dazuliefern und schon klappts mit der Darstellung.
Was aus Deiner DB kommt, sind möglicherweise keine Bytes, sondern utf8-kodierte Zeichenketten, das hängt davon ab, ob Dein Script mit der DB zeichenorientiert oder byteorientiert kommuniziert. Was Du in Richtung Webserver mit print oder echo ausgibst, geht auf STDOUT, das ist ein Handler und auf einen Handler müssen Bytes geschrieben werden.
Hotti