首页 > 编程问答 >“utf-8”编解码器无法解码位置 85 中的字节 0xf3:无效的连续字节

“utf-8”编解码器无法解码位置 85 中的字节 0xf3:无效的连续字节

时间:2024-08-06 03:39:35浏览次数:9  
标签:python postgresql fastapi pgadmin-4

我有一个连接到 pgadmin POSTGRESQL 的 fastapi 服务。 这是我在数据库中的数据: INSERT INTO public.agency(名称、地址、描述) 价值观 (“中央机构”、“中心城市主街 123 号”、“所有运营和服务的中心枢纽。”), (“北部机构”、“北部城镇北大街 456 号”、“处理所有北部地区的活动和支持。”), ('South Agency', 'Southern City South Blvd 789', '专注于该地区南部地区的各种服务。'), 此代码是我在服务模块上调用数据库的方式:

def get_agencies(self):
    result = self.db.query(AgencyModel).all()
    return result

但服务返回此错误:

“utf-8”编解码器无法解码位置 85 中的字节 0xf3:无效的连续字节。

如何我可以解决这个问题吗?


这个错误 "utf-8 codec can't decode byte 0xf3 in position 85" 说明你的代码在尝试用 UTF-8 编码解码包含非 UTF-8 字符的数据。 虽然错误信息指向第85个字节的0xf3,但真正的问题可能出现在数据库的编码设置上。

以下是几种可能的解决方法:

1. 检查数据库编码:

  • 确保你的PostgreSQL数据库的编码设置为UTF-8。可以通过以下命令在pgAdmin中查看:

    sql SHOW SERVER_ENCODING;

  • 如果编码不是UTF-8,可以通过修改postgresql.conf文件中的 client_encoding 参数来更改。修改完成后需要重启数据库服务。

2. 检查数据源:

  • 确认插入数据库的数据源本身是否为UTF-8编码。
  • 如果数据来自文件,请确保文件编码为UTF-8。
  • 如果数据来自网络请求,请确保请求头中指定了UTF-8编码。

3. 使用正确的编码方式读取数据:

  • 在FastAPI应用中,确保使用正确的编码方式读取数据库返回的数据。可以使用 encode() decode() 方法进行编码转换。

    python def get_agencies(self): result = self.db.query(AgencyModel).all() # 将数据解码为UTF-8 return [agency.decode('utf-8') for agency in result]

4. 设置连接编码:

  • 在连接数据库时,明确指定使用UTF-8编码。例如,在使用psycopg2连接PostgreSQL时,可以在连接字符串中添加 client_encoding='utf8' 参数。

    ```python import psycopg2

    conn = psycopg2.connect( host="your_host", database="your_database", user="your_user", password="your_password", client_encoding='utf8' ) ```

5. 检查特殊字符:

* 错误信息中的 "position 85"  暗示问题可能出现在特定的数据行。 检查你的数据库,特别是  "South Agency"  相关的数据,查看是否存在非法的 UTF-8 字符。 你可以使用文本编辑器,并打开显示不可见字符的功能,查找可疑字符。

通过排查以上几点,你应该能够解决 "utf-8 codec can't decode" 错误,并确保你的FastAPI应用可以正确处理数据库中的数据。

标签:python,postgresql,fastapi,pgadmin-4
From: 78835639

相关文章

  • 【香橙派系列教程】(七)香橙派下的Python3安装
    【七】香橙派下的Python3安装为接下来的Linux图像识别智能垃圾桶做准备。图像处理使用京东SDK只支持pyhton和Java接口,目的是引入C语言的Python调用,感受大厂做的算法bug此接口是人工智能接口,京东识别模型是通过训练后的模型,精准度取决于训练程度,人工智能范畴在常规嵌入式......
  • vnpy,一个不可思议的Python库!
    vn.py是一个开源的Python交易编程框架,旨在帮助程序员快速搭建属于自己的量化交易平台。该框架支持股票、期货、外汇等多种金融产品的交易,提供了从数据获取、策略开发到交易执行的全流程支持。如何安装vnpy首先,要使用vnpy,您需要通过Python的包管理工具pip来安装它。以下......
  • Python回溯算法
    回溯算法回溯算法是一种系统的搜索算法,用于解决诸如排列组合、子集生成、图的路径、棋盘问题等问题。其核心思想是通过递归尝试各种可能的解决方案,遇到不满足条件的解时则回退(回溯),继续尝试其他可能性,直到找到所有的解决方案或确认无解。主要步骤:选择路径:在当前步骤选择一个可......
  • [python]使用gunivorn部署fastapi服务
    前言Gunicorn是一种流行的WSGIHTTP服务器,常用于部署Django和Flask等PythonWeb框架程序。Gunicorn具有轻量级、高稳定性和高性能等特性,可以轻易提高PythonWSGIApp运行时的性能。基本原理Gunicorn采用了pre-fork模型,也就是一个工作进程和多个worker进程的工作模式。在这个模......
  • python十六进制编辑器
    源代码:importtkinterastkfromtkinterimportfiledialogimportstructimportbinasciiimportosclassHexEditor:def__init__(self,master):self.master=masterself.master.title("十六进制编辑器")self.master.configure(bg......
  • python项目学习 mediapipe手势识别 opencv可视化显示
    importcv2importmediapipeimportnumpydefget_angle(vector1,vector2):#角度计算angle=numpy.dot(vector1,vector2)/(numpy.sqrt(numpy.sum(vector1*vector1))*numpy.sqrt(numpy.sum(vector2*vector2)))#cos(angle)=向量的点乘/向量的模angle=nump......
  • 【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
    摘要气象数据分析在各行各业中扮演着重要的角色,尤其对于农业、航空、海洋、军事、资源环境等领域。在这些领域中,准确的气象数据可以对预测未来的自然环境变化和采取行动来减轻负面影响的决策起到至关重要的作用。本系统基于PythonFlask框架,通过对气象数据的分析和处理来提供......
  • Python-MNE全套教程(官网翻译)-入门01:概述篇
    目的以牺牲深度为代价进行入门学习,简易学习基本方法开始导入相关库:#License:BSD-3-Clause#CopyrighttheMNE-Pythoncontributors.importnumpyasnpimportmne加载数据MNE-Python数据结构式基于fif格式的,但是对于其他格式也有阅读方法,如https://mne.tools/s......
  • Python-MNE全套教程(官网翻译)-入门05:关于传感器位置
    本教程描述了如何读取和绘制传感器位置,以及MNE-Python如何处理传感器的物理位置。像往常一样,我们将从导入我们需要的模块开始:frompathlibimportPathimportmatplotlib.pyplotaspltimportnumpyasnpimportmne关于montage和layout(蒙太奇和传感器布局)montage......
  • Codeforces Round 963 (Div. 2) A - C 详细题解(思路加代码,C++,Python) -- 来自灰名
    比赛链接:Dashboard-CodeforcesRound963(Div.2)-Codeforces之后有实力了再试试后面的题目,现在要做那些题,起码要理解一个多小时题目A:链接:Problem-A-Codeforces题目大意理解:        极少数不考翻译能读懂的cf题目(bushi)每个测试用例第一行一个n,......