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
相关产品推荐
相关产品推荐

