Python静态服务器响应中文带图片页面发生乱码和不显示图片功能

问题遇到的现象和发生背景:

我使用的是Python3.10 + Windows 10操作系统,Pycharm编写了如下静态服务器响应客户端浏览器连接,发送响应报文 + 指定页面。
指定页面是中文欢迎页面+一个图片
可是遇到了以下问题:
返回的网页无法同时显示正常的中文字和图片,要么图片不显示,要么中文字乱码。
请问该怎么解决。

问题相关代码,请勿粘贴截图

img

img

img

中文能正常显示,但是会报错,UTF-8无法解码图片。

img

img

img

图片能显示,中文却不能正常显示了。

运行结果及报错内容

返回的网页无法同时显示正常的中文字和图片,要么图片不显示,要么中文字乱码。

我的解答思路和尝试过的方法

当我对响应报文内容直接encode('gbk')时,图片正常显示,中文字乱码。
当我对响应报文中响应头先encode('utf-8'),再和整个响应体decode('utf-8')再encode('gbk')时,中文字正确,图片不显示。
我甚至在vmware里的ubuntu也同样编了一个,同样的结果。

我想要达到的结果

返回的网页同时显示正常的中文字和图片,

从第一张图的报错看,用utt-8解码报错,估计是有BOM头的数据,用utf-8-sig试试,.decode('utf-8-sig')。