首页 > 其他分享 >django保存数据到表时,遇到字符集问题--已解决

django保存数据到表时,遇到字符集问题--已解决

时间:2024-03-11 18:55:53浏览次数:23  
标签:set name utf8mb4 -- character django unicode mysql 到表时

问题回归:

在开发《测试平台imos》时,调用下载接口后,保存返回报文乱码包含一大堆??时,报错:

 查询了下资料,是由于编码位数不同引起的, 在mysql中默认的utf8是3位的:

??表情已经超过了三位位, 所以用三位空间储存空间肯定出问题。知道了原因那解决起来就简简单单了。

解决方式:

1.打开mysql配置文件,my.cnf,修改以下配置,如果没有就加上(我这里使用的是mysql5.7)

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-client-handshake =FALSE

character-set-server =utf8mb4

collation-server =utf8mb4_unicode_ci

2.重启mysql

docker restart mysql5.7

3.数据库 、表 、 字段数据库修改

数据库修改:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

表修改:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

字段修改:

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 注意这里的database_name,table_name,column_name,191都是根据自身情况进行修改的

以上措施弄完后,发现还是不行,深深的陷入思考中????

最后在查询django官方文档时,发现在setting配置数据库时,默认字符集为uft8,那改为utf8mb4,完美解决:

 

标签:set,name,utf8mb4,--,character,django,unicode,mysql,到表时
From: https://www.cnblogs.com/quxue/p/18066820

相关文章

  • c# 上传压缩包 解压,遍历文件夹和文件
    <body><formid="form1"runat="server"><div><asp:FileUploadID="FileUpload1"runat="server"/><asp:buttonID="Button1"runat="server"text="上传&q......
  • SD-WAN专线对本地网络有哪些要求?
    SD-WAN(软件定义广域网)是一种新型的网络架构,通过软件定义的方式,将网络控制平面和数据转发平面进行分离,从而实现网络的灵活性、可编程性和自动化管理。在部署SD-WAN专线时,本地网络需要满足一些要求,以确保SD-WAN专线网络的稳定运行和高效性能。以下是SD-WAN专线对本地网络的几个重要......
  • ElasticSearch架构介绍及原理解析
    前言在当今大数据时代,数据的快速增长使得有效地管理、检索和分析数据成为企业发展的关键。Elasticsearch(以下简称ES)作为一种开源的分布式搜索和分析引擎,在这个领域中扮演着重要的角色。它不仅仅只是全文搜索,还支持结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关......
  • UI自动化、性能、API测试一体平台:RunnerGo
    UI自动化测试已经成为现代软件开发过程中不可或缺的一部分。它能够提供诸多优势,包括提高测试效率、减少人力成本、提升软件质量等。同时,可视化工具为UI自动化测试带来了更多便利和灵活性。RunnerGo近期上线脚本录制器,根据你的测试操作直接生成UI自动化测试脚本,下面是使用方法Step......
  • 性能测试入门:做一次简单的性能测试
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试。突然让做性能测试怎么办?日常工作中,项目改造或项目架构升级都需要......
  • Linux查看文件内容常用命令
    前言在Linux系统中,查看文件内容是进行系统管理和日常操作的基本技能之一。通过一些简单而有效的命令,您可以快速浏览文件的内容,检查配置文件、日志文件等。本文将介绍几个常用的Linux命令,帮助您轻松地查看文件内容。查看文件类型1、file命令:filefile_name查看文本内容查看......
  • 你是怎么理解ES6中 Decorator 的?使用场景?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、介绍Decorator,即装饰器,从名字上很容易让我们联想到装饰者模式简单来讲,装饰者模式就是一种在不改变原类和使用继承的情况下,动态地扩展对象功能的设计理论。ES6中Decorator功能亦如此,其本质也不是什么高大上的......
  • 简述Helm及其优势
    Helm是Kubernetes的软件包管理工具,Helm能够将一组K8S资源打包统一管理,是查找、共享和使用为Kubernetes构建的软件的最佳方式。Helm中通常每个包称为一个Chart,一个Chart是一个目录,优势:1)统一管理、配置和更新这些分散的k8s的应用资源文件;2)分发和复用一套应用模板;3)将应用的一......
  • C++ 雇佣兵
    描述雇佣兵的体力最大值为M,初始体力值为0、战斗力为N、拥有X个能量元素。当雇佣兵的体力值恰好为M时,才可以参加一个为期M天的战斗期,战斗期结束体力值将为0。在同一个战斗期内,雇佣兵每连续战斗n天,战斗力就会上升1点,n为当前战斗期开始时的战斗力。一个战斗期结束后,雇佣兵需要用若......
  • c# 判断图片、pdf是A0、A1、A2、A3、A4
    //("A0841*1189(mm)999949");//("A1594*841(mm)499554");//("A2420*594(mm)249485");//("A3297*420(mm)124740");//("A4210*297(mm)62370");//("B3353*500(mm)176500");//("B4250*353(mm)8825......