解决数据库unicode编码导致字符串读取问题

如何在 MySQL 数据库中支持完整的Unicode 永远不要在 MySQL 中使用 utf8——总是使用 utf8mb4。更新数据库和代码可能需要一些时间,但绝对值得付出努力。为什么要任意限制可以在数据库中使用的符号集?为什么每次用户输入星体符号作为评论或消息的一部分或我们存储在数据库中的任何内容时,都会丢失数据?没有理由不在所有地方争取完全的 支持。做正确的事,使用 utf8mb4。微点阅读。 阅读详情

数据库设置编码为:utf8mb4_unicode_ci
在业务上用数据库已经存储带空格的字符去对比真实输入带有空格的字符串数据,就会遇到表面上看过去一模一样,经过程序对比却是返回False
例子:
数据库可视化查询结果如下:
在这里插入图片描述

用程序查询出来的结果:

>>> data
[('Free\xa0Pray')]

这显然无法正常匹配的上,用unicodedata库即可解决该问题。
解决方案:

new_str = unicodedata.normalize("NFKD", unicode_str)
>>> input_name
'Free Pray'
>>> db_name
'Free\xa0Pray'
>>> input_name == db_name
False
>>> import unicodedata
>>> new_name = unicodedata.normalize("NFKD", db_name)
>>> new_name
'Free Pray'
>>> new_name == input_name
True

详情可参考官方文档:https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize

如果觉得文章对您有帮助,欢迎点赞,收藏、关注!

多字节字符集与Unicode字符集(CString char*和wchar_t* 容易出错的原因) 1.基本概念 2.L与_T 3.char TCHAR 与 wchar_t,strcpy wcscpy与_tcscpy 4.LPSTR,LPCSTR,LPTSTR,LPCTSTR,LPWSTR,LPCWSTR 5.ANSI转Unicode(char 转 wchar_t) 6.Unicode转ANSI(wchar_t 转 har) 7.CString 1.ANSI与Unicode ANSI:多字... 阅读详情

相关推荐

unicode点阵显示字库文件

gbk点阵字库文件,unicode转换为gbk的文件

MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法

VC6.0中默认使用的是多字节编码,而从VS2005以后,默认使用的是Unicode字符编码方式,尤其在VS2013中还取消了对于多字节编码的支持,需要额外安装插件。如果使用多字节编码就不会遇到本文所说的问题,但是用Unicode字符编码方式也是有好处的,除了支持程序主题更美观,更重要的是统一编码标准。这或许就是vs中取消多字节编码的一个原因吧。 好...

weixin_34273046的博客 645

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7373

mysql模糊查询unicode编码的字段的解决方案——mybatis查数据库mysql时对unicode支持问题

1.mysql数据库里的nickname字段内容是经过unicode编码处理后存储的, 如:\u73\u74\u61\u72\u7a\u6d\ud83d\udc7f\u20\ud83d\ude04\u20\ud83d\ude03\u20\ud83d\ude13 实际明文:starzm

透明大脑 7173

《网络安全自学教程》- 防火墙原理分析与Windows防火墙使用配置

防火墙分类及原理,Windows开启防火墙,Windows防火墙添加策略,

wangyuxiang946的博客 1万+

【proteus】模拟串口和物理串口通讯

proteus提供了两种串口,一种是模拟的串口,还有一张是用软件仿真到硬件的物理串口。他们的区别就是:模拟串口只能在proteus内部进行通讯,但是物理可以通过软件映射到硬件上和单机或者串口软件通讯。 物理串口在元器件搜索COMPIM即可找到。 模拟串口在这里: PROTEUS仿真图: 物理串口COMPIM的设置: 模拟串口的设置: VSPD是一款虚拟串口软件,VSPD下载链接: 链接:https://pan.baidu.com/s/1AZygJCeWZfQTnxdCb_3TPg 提取码:12pm

阿蛋的博客 8933

MySQL尾部空格处理与哪些设置有关? 字符集PAD SPACE与NO PAD属性的区别、MySQL字段尾部有空格为什么也能查询出来?

MySQL尾部空格处理与哪些设置有关? 字符集PAD SPACE与NO PAD属性的区别、MySQL字段尾部有空格为什么也能查询出来?

weixin_49114503的博客 2343

基于FPGA的多通道音频信号采样系统设计

FPGA是随着数字集成电路的发展而逐步演变而来的。从早期的电子管、晶体管、小规模集成电路,到超大规模集成电路(VLSIC),数字集成电路的集成度和性能不断提升。FPGA的出现为系统设计师提供了灵活的设计平台,使其能够在不依赖半导体厂商的情况下快速设计专用集成电路(ASIC)。FPGA具有设计周期短、成本低、开发工具先进等优点,广泛应用于原型设计和产品生产中。VHDL是一种用于描述数字系统的硬件描述语言,其语言形式类似于计算机高级语言,但包含了许多硬件特征语句。

qq_62634009的博客 709

字符,字节和编码

摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。 掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。 引言 “字符与编码”是一个被经常讨

快乐的鱼儿学敲码 410

CAN 通信测试工具 canutils

概述 CAN,Controller Area Network,控制器局域网,一种高可靠性的现场总线。广泛用于汽车电子、工业控制通信。 canutils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence。这几个程序的功能简述如下: canconfig:用于配置 CAN 总线接口的参数,主要是波特率和模式。 candump...

一个软件工程师的技术笔记 1万+

16、树莓派Pico W:蓝牙与Wi-Fi应用指南

本文介绍了树莓派Pico W在蓝牙与Wi-Fi通信方面的应用,涵盖蓝牙配对原理、使用HC-06模块实现手机远程控制LED和传输内部温度,以及通过Wi-Fi进行网络连接、扫描和UDP协议下的设备控制。文章包含详细电路连接、代码实现与测试步骤,并提供拓展建议、常见问题解决方法及开发注意事项,帮助读者快速掌握基于Pico W的无线通信项目开发,适用于物联网入门与实践场景。

sun99的博客 290

计算机底层存储字节还是字符,彻底搞懂乱码——字符,字节和编码

级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。引言“字符与编码”是一个被经常讨论的话...

weixin_39628343的博客 970

Agile Modbus使用和学习笔记

i < len;这里仅仅需要提供获取函数即可,离散输入是只读类型i++) {return 0;只读类型寄存器i++) {return 0;i < len;

Car12 168

java access 中文乱码_Java JDBC-ODBC 连接 Access 数据库 中文乱码解决

[tag:powerbuilder odbc mysql 中文乱码作者:benjaminz(zeng78@gmail.com) 时间:2008-11-14 由于一个项目中要使用mysql作为数据库,前端的开发工具定为powerbuilder9,安由于Java的String类型使用的是unicode编码,而微软的Access数据库使用的是gbk编码。使用String类型的变量存储Access中的文本...

weixin_35327824的博客 653

ISO 21434汽车网络安全标准深度解读系列(十):标准实施总结与展望

ISO21434标准深度解读系列总结篇系统回顾了汽车网络安全标准的核心内容与实施要点。文章梳理了10篇系列文章的结构体系,提炼出标准的三大核心价值:系统性方法(全生命周期覆盖、多层次管理)、风险导向理念(威胁驱动、动态管理)和供应链协同机制。总结了实施经验中的关键要素,包括高层承诺、专业团队建设,并提出了分阶段实施路径建议。同时分析了当前面临的技术挑战(系统复杂性、新兴技术)和管理挑战(文化转变、资源投入)。最后展望了AI应用、零信任架构等技术发展趋势,以及标准未来的演进方向,为企业实施提供战略与执行层面的

VehSwHwDeveloper的博客 559

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java+mysql中文乱码问题

乱码问题原因有多种,其中有一种是由于MySQL默认使用 ISO-8859-1 ( 即Latin1 ) 字符集,而JAVA内部使用Unicode编码,因此在JAVA中向MYSQL数据库插入数据时,或者读取数据时,都需要先转换一下编码方式。当然,如果可以直接修改配置文件的话,也可以解决乱码问题,然而某些情况下,我们并不能直接接触到配置文件(例如你是买的网上的空间),此时,我们可以采取编码格式转换的方法...

weixin_30567225的博客 133

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

微信昵称中含有emoji字符等特殊符号时引起的存储问题

问题:当PHP获取微信昵称并保存在数据库中,会报错;当然待从数据库中读取时只能是空的。 原因:查询得知,一般数据库字体编码为utf-8, 3字节, emoji为unicode编码,4字节,数据库插入不成功,只能报错 解决1:数据库编码选择utf8mb4字符集,适用于全新数据库 解决2:在插入数据时,将可能包含特殊符号的字符串编码(utf8_encode),从数据库读取数据时,同样字段进行解码(ut...

weixin_30770495的博客 1004

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Mysql处理字符串中的隐藏字符

Mysql处理字符串中的隐藏字符 前言 在项目中,数据插入的时候在很多场景下面都会造成数据插入的字符串中隐藏的无法肉眼可查的字符,此隐藏字符可能会影响到业务的查询 一、项目中出现的场景 bufferedReader.readLine()读取文件第一行时,会多出一个空格(65279 代表空格),此时如果业务尚未单独处理此字符,就会造成在数据中插入一条携带隐藏字符的字符串 二、解决步骤 -> Mysql 1.Hex函数让隐藏字符显示真身 SELECT hex(tran_no),tran_

qq_39472779的博客 1733

python设置unicode编码_关于python中的unicode字符串的使用

基于python2.7中的字符串:unicode——》编码encode('utf-8')——》写入文件读出文件——》解码decode('utf-8')——》unicode在使用unicode的时候,必须注意以下的原则:1、 程序中出现字符串的地方加前缀u,表示为unicode类型2、不要使用str函数,在使用的时候使用unicode函数3、不要使用string模块4、只有在写入文件或者数据库或者网...

weixin_39953236的博客 749

python读取数据库的文件出现编码问题的解决办法

一些基本概念: 编码:将人类可识别的字符转换为机器可识别的字节码、字节序列。encode 解码:编码的反向过程。decode unicode是人类可识别的字符串格式。ASCII、UTF-8、GBK等都是机器可识别的字节编码。 python2的默认编码是ASCII码,因此无法识别中文字符,需要显式指定字符编码。 机器内存中的数据,统一使用UNICODE编码 数据传输或者保存到硬盘上,使用UTF-8编...

fanyao4144的博客 1357

python3转为unicode编码_Python3的unicode编码转换成中文的问题及解决方案

python中怎样将unicode转换成原来的中文?[这世界上一定有另一个小编做着小编不敢做的事过着小编想过的生活]前端将中文编码后传到后台,后台对传来的数据进行json.dumps存入mysql数python默认就是unicode存储。如果是从文件读取的,在open的参数中指定encoding关键字参数就行。如下: #coding=utf-8/import json /def LoadQuest...

weixin_36272622的博客 2898

python的unicode_python的unicode及其编码解码

Unicode支持多种编码格式,这为程序员带来了额外的负担,每当你向一个文件写入字符串的时候,你必须定义一个编码用于把对应的Unicode内容转换成你定义的格式,Python通过Unicode字符串的encode()函数解决了这个问题,该函数接受字符串中的字符为参数,输出你指定的编码格式的内容。所以,每次我们写一个Unicode字符串到磁盘上我们都要用指定的编码器给他“编码“一下,相应地,当我们从...

weixin_39929961的博客 3523

关于python中的unicode字符串的使用

python对unicode的支持

KEL 1万+

解决Python中读Oracle数据库的中文编码问题

一、编码 字符是各种文字和符号的总称,包括各个国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集有:ASCII字符集、ISO 8859字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 1、ASCII ASC

melon0014的博客 1万+

python中unicode编码_python unicode编码

展开全部python unicode编码:下面2113的代码创建了5261一个Unicode字符串,用UTF-8编码器将它编4102码,然后写入到一个文件中去,1653接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。在Linux中编写,在VIM中输入如下代码,保存为uniFile.py# /home/xiaopeng/python...

weixin_39761255的博客 334

Unicode 中文乱码排查与解决方案

中文乱码问题常见于软件开发中,主要源于编码不一致、环境配置错误或程序处理不当。本文系统分析了乱码成因,包括UTF-8与GBK等编码差异,并提供了排查方法:确定输入输出编码、分析异常字符、检查环境配置。解决方案建议统一使用UTF-8编码,调整系统环境,使用转码工具,并针对网页、数据库等具体场景给出修复方案。文章强调通过编码标准化和系统测试可有效预防乱码,为开发者提供了全面的中文乱码处理指南。

vortex5的博客 2万+
上一篇: Flask异步操作实例
下一篇: Python爬虫之代理问题
Thomas_Lean
博客等级 码龄9年 58粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值