You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python HTTP输出UTF-8°符号时出现Â字符的修复咨询

解决HTTP输出度数符号出现Â的问题

你遇到的是编码不匹配导致的乱码:你用UTF-8编码输出了度数符号(°的UTF-8编码是0xC2B0),但HTTP响应没有明确告诉浏览器使用UTF-8解析,浏览器默认采用了单字节编码(比如ISO-8859-1),把双字节的UTF-8编码拆成了两个独立字符,就出现了°C的错误显示。

具体解决步骤

  • 第一步:在输出正文前,发送正确的HTTP响应头,明确指定内容编码为UTF-8

    # 先发送响应状态和头部(必须在任何正文内容之前执行)
    self.send_response(200)
    self.send_header("Content-Type", "text/html; charset=utf-8")
    self.end_headers()
    

    这是核心修复步骤,直接告诉浏览器内容的编码格式,避免默认编码猜测。

  • 第二步:输出正文内容(原有写法没问题,可优化为更简洁的f-string)

    avg_temp = round(totalTempPast/pastCount, 2)
    response_html = f"<br>Average Temperature in last 24 hours = {avg_temp} °C"
    self.wfile.write(response_html.encode("utf-8"))
    

    直接写°符号、用\N{DEGREE SIGN}或者chr(176)都可以,只要最终用UTF-8编码输出即可。

  • 注意:之前尝试的chr(223)是错误的,它对应的是德语字符ß,不是度数符号,正确的度数符号Unicode码是U+00B0,对应chr(176)。

内容的提问来源于stack exchange,提问作者joepool2103

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:27:02