当前位置: 首页 > news >正文

Python(17)Python字符编码完全指南:从存储原理到乱码终结实战

目录

      • 背景介绍
      • 一、字符编码核心原理
        • 1. 计算机存储本质
        • 2. Python3的编码革命
        • 3. 主流编码格式对比
      • 二、编码转换核心方法
        • 1. 编码(Encode)过程
        • 2. 解码(Decode)过程
        • 3. 错误处理策略
      • 三、文件操作编码实战
        • 1. 文本文件读写
        • 2. 二进制模式转换编码
      • 四、网络通信编码处理
        • 1. HTTP请求响应处理
        • 2. Socket通信协议
      • 五、高级编码技巧
        • 1. 编码自动检测
        • 2. 混合编码处理
      • 六、总结与最佳实践
        • 1. 黄金准则
        • 2. 配置推荐
        • 3. 工具清单
        • Python相关文章(推荐)

背景介绍

在Python开发中,‌字符编码问题‌是引发程序异常的常见根源。据统计:

  • 68%‌的中文开发者遭遇过乱码问题
  • ‌32%‌的文件操作异常与编码设置相关
  • ‌55%‌的网络请求数据解析失败由编码不一致导致

本文将通过‌底层存储原理分析‌ + ‌12个实战案例‌,系统讲解:

  • 字符在内存与磁盘中的存储差异‌
  • Python3的Unicode处理机制‌
  • 5种主流编码格式深度对比‌
  • 编码自动检测与转换方案‌
  • 多语言混合环境的最佳实践‌

一、字符编码核心原理

1. 计算机存储本质

在这里插入图片描述

2. Python3的编码革命
# Python2 vs Python3 对比
s = "中文"
# Python2 → <type 'str'>(字节序列)
# Python3 → <class 'str'>(Unicode字符)
3. 主流编码格式对比
编码标准单位字节中文字符长度兼容性典型应用场景
ASCII1字节不支持英文系统配置文件
Latin-11字节不支持西欧语言欧洲网站
GBK2字节2字节简体中文中文Windows系统
UTF-81-4字节3字节全球语言现代应用/网络传输
UTF-162/4字节2或4字节历史遗留系统Java/.NET内部处理

二、编码转换核心方法

1. 编码(Encode)过程
text = "中文Python"
# 转换为字节序列
utf8_bytes = text.encode('utf-8')  # b'\xe4\xb8\xad\xe6\x96\x87Python'
gbk_bytes = text.encode('gbk')     # b'\xd6\xd0\xce\xc4Python'
2. 解码(Decode)过程
# 从字节重建字符串
decoded_gbk = gbk_bytes.decode('gbk')  # "中文Python"
decoded_utf8 = utf8_bytes.decode('utf-8') 
3. 错误处理策略
# 包含非法字节的数据
broken_bytes = b'\xe4\xb8\xad\xffPython'# 不同处理方式
print(broken_bytes.decode('utf-8', 'ignore'))  # "中Python"
print(broken_bytes.decode('utf-8', 'replace')) # "中�Python"

三、文件操作编码实战

1. 文本文件读写
# 写入UTF-8文件
with open('demo_utf8.txt', 'w', encoding='utf-8') as f:f.write("北京温度: 25℃")# 读取GBK文件
with open('demo_gbk.txt', 'r', encoding='gbk') as f:content = f.read()
2. 二进制模式转换编码
# 任意编码文件转UTF-8
with open('legacy.dat', 'rb') as f:raw_data = f.read()detected_encoding = chardet.detect(raw_data)['encoding']text = raw_data.decode(detected_encoding)with open('modern.txt', 'w', encoding='utf-8') as f:f.write(text)

四、网络通信编码处理

1. HTTP请求响应处理
import requestsresp = requests.get('https://example.com/中文')
# 自动检测编码
resp.encoding = resp.apparent_encoding  
print(resp.text)
2. Socket通信协议
# 服务端发送
sock.send("状态更新: 成功".encode('utf-8'))# 客户端接收
data = sock.recv(1024)
decoded = data.decode('utf-8')

五、高级编码技巧

1. 编码自动检测
import chardetdef safe_decode(data):result = chardet.detect(data)return data.decode(result['encoding'])with open('unknown.txt', 'rb') as f:print(safe_decode(f.read()))
2. 混合编码处理
# 处理包含多种编码的文本
mixed_data = b"\x41\x42\x43\xe4\xb8\xad\xe6\x96\x87"  # ABC中文
decoded = []
while mixed_data:try:decoded.append(mixed_data.decode('utf-8'))breakexcept UnicodeDecodeError:decoded.append(mixed_data[:1].decode('latin-1'))mixed_data = mixed_data[1:]
print(''.join(decoded))  # ABC中文

六、总结与最佳实践

1. 黄金准则

‌内部统一‌:内存中始终使用Unicode(str类型)
‌尽早转换‌:在输入/输出边界完成编码转换
‌明确声明‌:绝不依赖默认编码设置

2. 配置推荐
# 在程序入口强制编码
import locale
import syssys.stdin.reconfigure(encoding='utf-8')
sys.stdout.reconfigure(encoding='utf-8')
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
3. 工具清单

‌编码检测‌:chardet(pip install chardet)
‌高级处理‌:ftfy(修复损坏文本)
‌性能优化‌:使用io.TextIOWrapper处理大文件

通过深入理解编码原理并应用本文方案,可彻底解决99%的乱码问题。建议在关键数据通道添加编码校验,并在单元测试中模拟不同编码场景。

Python相关文章(推荐)
Python全方位指南Python(1)Python全方位指南:定义、应用与零基础入门实战
Python基础数据类型详解Python(2)Python基础数据类型详解:从底层原理到实战应用
Python循环Python(3)掌握Python循环:从基础到实战的完整指南
Python列表推导式Python(3.1)Python列表推导式深度解析:从基础到工程级的最佳实践
Python生成器Python(3.2)Python生成器深度全景解读:从yield底层原理到万亿级数据处理工程实践
Python函数编程性能优化Python(4)Python函数编程性能优化全指南:从基础语法到并发调优
Python数据清洗Python(5)Python数据清洗指南:无效数据处理与实战案例解析(附完整代码)
Python邮件自动化Python(6)Python邮件自动化终极指南:从零搭建企业级邮件系统(附完整源码)
Python通配符基础Python(7)Python通配符完全指南:从基础到高阶模式匹配实战(附场景化代码)
Python通配符高阶Python(7 升级)Python通配符高阶实战:从模式匹配到百万级文件处理优化(附完整解决方案)
Python操作系统接口Python(8)Python操作系统接口完全指南:os模块核心功能与实战案例解析
Python代码计算全方位指南Python(9)Python代码计算全方位指南:从数学运算到性能优化的10大实战技巧
Python数据类型Python(10)Python数据类型完全解析:从入门到实战应用
Python判断语句Python(11)Python判断语句全面解析:从基础到高级模式匹配
Python参数传递Python(12)深入解析Python参数传递:从底层机制到高级应用实践
Python面向对象编程Python(13)Python面向对象编程入门指南:从新手到类与对象(那个她)的华丽蜕变
Python内置函数Python(14)Python内置函数完全指南:从基础使用到高阶技巧
Python参数传递与拷贝机制Python(15)Python参数传递与拷贝机制完全解析:从值传递到深拷贝实战
Python文件操作Python(16)Python文件操作终极指南:安全读写与高效处理实践

相关文章:

Python(17)Python字符编码完全指南:从存储原理到乱码终结实战

目录 背景介绍一、字符编码核心原理1. 计算机存储本质2. Python3的编码革命3. 主流编码格式对比 二、编码转换核心方法1. 编码&#xff08;Encode&#xff09;过程2. 解码&#xff08;Decode&#xff09;过程3. 错误处理策略 三、文件操作编码实战1. 文本文件读写2. 二进制模式…...

Node.js 文件读取与复制相关内容

Node.js 文件读取与复制相关内容的系统总结&#xff0c;包括 同步读取、异步读取、流式读取、复制操作、两者对比及内存测试。 &#x1f9e9; 一、Node.js 文件读取方式总结 Node.js 使用 fs&#xff08;文件系统&#xff09;模块进行文件操作&#xff1a; 1. 同步读取&#…...

大数据面试问答-HBase/ClickHouse

1. HBase 1.1 概念 HBase是构建在Hadoop HDFS之上的分布式NoSQL数据库&#xff0c;采用列式存储模型&#xff0c;支持海量数据的实时读写和随机访问。适用于高吞吐、低延迟的场景&#xff0c;如实时日志处理、在线交易等。 RowKey&#xff08;行键&#xff09; 定义&#xf…...

jupyter 文件浏览器,加强版,超好用,免费exe

第一步&#xff1a;github搜索 lukairui的 jupyter-viewer-plus 仓库 第二步&#xff1a; git clone 到本地。 解压zip包 第三步&#xff1a; 进入压缩包&#xff0c;第一次双击打开jupyter-viewer-plus.exe运行&#xff0c;第一次运行后&#xff0c;界面上有一个“设为…...

【AI工具】用大模型生成脑图初试

刚试用了一下通过大模型生成脑图&#xff0c;非常简单&#xff0c;记录一下 一、用大模型生成脑图文件 关键&#xff1a;存在markdown文件 举例&#xff1a;使用Deepseek&#xff0c;输入问题&#xff1a;“针对大模型的后训练&#xff0c;生成一个开发计划&#xff0c;用ma…...

数据结构-树与二叉树

一、树的定义与基本术语 1.1 树的定义 树&#xff08;Tree&#xff09;是一种非线性的数据结构&#xff0c;它是由 n&#xff08;n ≥ 0&#xff09;个有限节点组成的集合。如果 n 0&#xff0c;称为空树&#xff1b;如果 n > 0&#xff0c;则&#xff1a; 有一个特定的节…...

STL_unordered_map_01_基本用法

&#x1f44b; Hi, I’m liubo&#x1f440; I’m interested in harmony&#x1f331; I’m currently learning harmony&#x1f49e;️ I’m looking to collaborate on …&#x1f4eb; How to reach me …&#x1f4c7; sssssdsdsdsdsdsdasd&#x1f383; dsdsdsdsdsddfsg…...

ARCGIS国土超级工具集1.5更新说明

ARCGIS国土超级工具集V1.5版本更新说明&#xff1a;因作者近段时间工作比较忙及正在编写ARCGISPro国土超级工具集&#xff08;截图附后&#xff09;的原因&#xff0c;故本次更新为小更新&#xff08;没有增加新功能&#xff0c;只更新了已有的工具&#xff09;。本次更新主要修…...

主流物理仿真引擎和机器人/强化学习仿真平台对比

以下是当前主流的物理仿真引擎和机器人/强化学习仿真平台的特点和适用场景&#xff0c;方便根据需求选择&#xff1a; &#x1f9e0; NVIDIA 系列 ✅ Isaac Lab v1.4 / v2 特点&#xff1a; 基于 Omniverse Isaac Sim&#xff0c;属于高端视觉机器人仿真框架v2 更加模块化&a…...

STM32 HAL库内部 Flash 读写实现

一、STM32F407 内部 Flash 概述 1.1 Flash 存储器的基本概念 Flash 存储器是一种非易失性存储器&#xff0c;它可以在掉电的情况下保持数据。STM32F407 系列微控制器内部集成了一定容量的 Flash 存储器&#xff0c;用于存储程序代码和数据。Flash 存储器具有擦除和编程次数的…...

C++学习:六个月从基础到就业——面向对象编程:构造函数与析构函数

C学习&#xff1a;六个月从基础到就业——面向对象编程&#xff1a;构造函数与析构函数 本文是我C学习之旅系列的第十篇技术文章&#xff0c;主要讨论C中构造函数与析构函数的概念、特点和使用技巧。这些是C对象生命周期管理的关键组成部分。查看完整系列目录了解更多内容。 引…...

dfs二叉树中的深搜(回溯、剪枝)--力扣129、814、230、257

目录 1.1题目链接&#xff1a;129.求根节点到叶结点数字之和 1.2题目描述&#xff1a;给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 1.3解法(dfs-前序遍历)&#xff1a; 2.1题目链接&#xff1a;814.二叉树剪枝 2.2题目描述&…...

Python Selenium 一小时速通教程

Python Selenium 一小时速通教程 实战案例 一、环境配置&#xff08;10分钟&#xff09; 安装Python 确保已安装Python 3.x&#xff08;官网下载&#xff09;。 安装Selenium 在终端运行&#xff1a; pip install selenium下载浏览器驱动 Chrome&#xff1a;访问 ChromeDriv…...

通过GO后端项目实践理解DDD架构

最近在工作过程中重构的项目要求使用DDD架构&#xff0c;在网上查询资料发现教程五花八门&#xff0c;并且大部分内容都是长篇的概念讲解&#xff0c;晦涩难懂&#xff0c;笔者看了一些github上入门的使用DDD的GO项目&#xff0c;并结合自己开发中的经验&#xff0c;谈谈自己对…...

MybatisPlus最新版分页无法使用

在使用分页的时候发现分页拦截器关键API会报错&#xff0c;其实根本原因是在之前只需要导入一个mybatisplus依赖&#xff0c;而现在分页似乎被单独分离出来了&#xff0c;需要额外导入新依赖使其支持 ​ <dependency><groupId>com.baomidou</groupId><art…...

【Android学习记录】工具使用

文章目录 一. 精准找视图资源ID1. 准备工作2. 使用 uiautomator 工具2.1. 获取设备的窗口内容2.2. Pull XML 文件2.3. 查看 XML 文件 3. 直接使用 ADB 命令4. 使用 Android Studio 的 Layout Inspector总结 二. adb shell dumpsys activity1. 如何使用 ADB 命令2. 输出内容解析…...

youtube视频和telegram视频加载原理差异分析

1. 客户侧缓存与流式播放机制​​ 流式视频应用&#xff08;如 Netflix、YouTube&#xff09;通过​​边下载边播放​​实现流畅体验&#xff0c;其核心依赖以下技术&#xff1a; ​​缓存预加载​​&#xff1a;客户端在后台持续下载视频片段&#xff08;如 DASH/HLS 协议的…...

在机器视觉检测中为何选择线阵工业相机?

线阵工业相机&#xff0c;顾名思义是成像传感器呈“线”状的。虽然也是二维图像&#xff0c;但极宽&#xff0c;几千个像素的宽度&#xff0c;而高度却只有几个像素的而已。一般在两种情况下使用这种相机&#xff1a; 1. 被测视野为细长的带状&#xff0c;多用于滚筒上检测的问…...

lwip记录

Index of /releases/lwip/ (gnu.org) 以太网(Ethernet)是互联网技术的一种&#xff0c;由于它是在组网技术中占的比例最高&#xff0c;很多人 直接把以太网理解为互联网。 以太网是指遵守 IEEE 802.3 标准组成的局域网&#xff0c;由 IEEE 802.3 标准规定的主要是位于 参考模…...

Redis清空缓存

尽管redis可以设置ttl过期时间进行指定key的定时删除&#xff0c;但是在某些场景下&#xff0c;比如&#xff1a; 测试时需要批量删除指定库下所有库下所有的数据&#xff0c;则会涉及到缓存清除的话题。 如下为具体的操作及说明&#xff1a; 场景类型操作指令清空当前库下所有…...

WPF 依赖注入启动的问题

原因是在App.xaml 设置了 StartupUri“MainWindow.xaml” 1.依赖注入后启动的主窗体存在无参构造 程序正常启动&#xff0c;但是主窗体界面会弹出2个窗体。 2.依赖注入后启动的主窗体存在有参构造 报错...

Arcgis经纬线标注设置(英文、刻度显示)

在arcgis软件中绘制地图边框&#xff0c;添加经纬度度时常常面临经纬度出现中文&#xff0c;如下图所示&#xff1a; 解决方法&#xff0c;设置一下Arcgis的语言 点击高级--确认 这样Arcgis就转为英文版了&#xff0c;此时在来看经纬线刻度的标注&#xff0c;自动变成英文...

【电子通识】案例:电缆的安装方式也会影响设备的可靠性?

背景 在日常生活中&#xff0c;我们常常会忽略一些看似微不足道的细节&#xff0c;但这些细节有时却能决定设备的寿命和安全性。比如&#xff0c;你知道吗&#xff1f;一根电缆的布置方式&#xff0c;可能会决定你的设备是否会因为冷凝水而损坏。 今天&#xff0c;我们就来聊聊…...

房屋装修费用预算表:45594 =未付14509 + 付清31085【时间:20250416】

文章目录 引言I 房屋装修费用预算表II 市场价参考防水搬运3000III 装修计划整体流程进度细节国补IV 付款凭证(销售单)伟星 PPR +PVC+太阳线+地漏=6500入户门设计通铺大板瓷砖 | 湿贴 3408(地)+3600(加)+5209(墙)=12217元门头铁空调引言 关注我,发送【装修记账】获取预…...

Python文件操作完全指南:从基础到高级应用

目录 一、文件基础概念 1.1 什么是文件&#xff1f; 1.2 文件的存储方式 文本文件 二进制文件 二、Python文件操作基础 2.1 文件操作三步曲 2.2 核心函数与方法 2.3 文件读取详解 基本读取示例 文件指针机制 2.4 文件打开模式 写入文件示例 2.5 高效读取大文件 三…...

03(总)-docker篇 Dockerfile镜像制作(jdk,jar)与jar包制作成docker容器方式

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.2 上文传送门 2. docker镜像制作一: jdk2.1 制作jdk镜像2.1.1 准备工作2.1.2 jdk镜像的Dockerfile2.1.3 基于Dockerfile构建镜像2.1.4 docker使用镜像运行容器2.1.5 进入jdk1.8容器内测试 3. docker镜像制作二: java镜像(jar包)…...

CUDA的安装

打开nvidia控制面板 找到组件 打开 CUDA Toolkit Archive | NVIDIA Developer 下载CUDA...

四六级听力调频广播有线传输无线覆盖系统:弥补单一发射系统安全缺陷,构建稳定可靠听力系统平台

四六级听力调频广播有线传输无线覆盖系统:弥补单一发射系统安全缺陷&#xff0c;构建稳定可靠听力系统平台 北京海特伟业科技有限公司任洪卓发布于2025年4月16日 随着英语四六级考试的规模不断扩大&#xff0c;听力考试部分的设备可靠性问题日益凸显。传统的无线发射系统存在…...

信创服务器-大国崛起,信创当道!

信创产业是数据安全、网络安全的基础&#xff0c;也是新基建的重要组成部分。在政策的推动下&#xff0c;2020-2022 年&#xff0c;中国信创服务器出货量整体呈现出快速增长的趋势&#xff0c;其中党政、电信、金融等领域采购频次高&#xff0c;单次采购量大&#xff0c;是中国…...

【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现

SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…...

冒泡与 qsort 排序策略集

今天我们要学习两种排序方法&#xff0c;分别是冒泡排序和qsort函数排序,冒泡排序相对qsort函数排序要简单一点&#xff0c;更易于理解。 1.冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它通过重复遍历元素列并比较相邻元素来实现排…...

【Linux】第七章 控制对文件的访问

目录 1. 什么是文件系统权限&#xff1f;它是如何工作的&#xff1f;如何查看文件的权限&#xff1f; 2. 解释‘-rw-r--r--’这个字符串。 3. 使用什么命令可以更改文件和目录的权限&#xff1f;写出分别使用符号法和数值法将权限从 754 修改为 775 的命令。 4. 如何修改文…...

网站301搬家后谷歌一直不收录新页面怎么办?

当网站因更换域名或架构调整启用301重定向后&#xff0c;许多站长发现谷歌迟迟不收录新页面&#xff0c;甚至流量大幅下滑。 例如&#xff0c;301跳转设置错误可能导致权重传递失效&#xff0c;而新站内容与原站高度重复则可能被谷歌判定为“低价值页面”。 即使技术层面无误&a…...

socket 客户端和服务器通信

服务器 using BarrageGrab; using System; using System.Collections.Concurrent; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading;namespace Lyx {class Server{private TcpListener listener;private Concurre…...

C实现md5功能

md5在线验证&#xff1a; 在线MD5计算_ip33.com 代码如下&#xff1a; #include "md5.h" #include <string.h> #include "stdio.h"/** 32-bit integer manipulation macros (little endian)*/ #ifndef GET_ULONG_LE #define GET_ULONG_LE(n,b,i) …...

【项目】CherrySudio配置MCP服务器

CherrySudio配置MCP服务器 &#xff08;一&#xff09;Cherry Studio介绍&#xff08;二&#xff09;MCP服务环境搭建&#xff08;1&#xff09;环境准备&#xff08;2&#xff09;依赖组件安装<1> Bun和UV安装 &#xff08;3&#xff09;MCP服务器使用<1> 搜索MCP…...

第五节:React Hooks进阶篇-如何用useMemo/useCallback优化性能

反模式&#xff1a;滥用导致的内存开销React 19编译器自动Memoization原理 React Hooks 性能优化进阶&#xff1a;从手动到自动 Memoization &#xff08;基于 React 18 及以下版本&#xff0c;结合 React 19 新特性分析&#xff09; 一、useMemo/useCallback 的正确使用场景…...

【Qt】QWidget 核⼼属性详解

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;QT 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f3dd; 一.相关概念&#x1f3a8;二. 核⼼属性概览&#x1f344;2.1 enabled&#x1f96d;2.2geometry&#x1f338; 2.3 windowTitle&#…...

如何知道raid 有问题了

在 Rocky Linux 8 上&#xff0c;你的服务器使用了 RAID5&#xff08;根据 lsblk 输出&#xff0c;/dev/sda3、/dev/sdb1 和 /dev/sdc1 组成 md127 RAID5 阵列&#xff09;。为了监控 RAID5 阵列中磁盘的健康状态&#xff0c;并及时发现某块磁盘损坏&#xff0c;可以通过以下方…...

操作系统之shell实现(上)

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

精益数据分析(3/126):用数据驱动企业发展的深度解析

精益数据分析&#xff08;3/126&#xff09;&#xff1a;用数据驱动企业发展的深度解析 大家好&#xff01;一直以来&#xff0c;我都坚信在当今竞争激烈的商业环境中&#xff0c;数据是企业获得竞争优势的关键。最近深入研究《精益数据分析》这本书&#xff0c;收获颇丰&…...

React 18/19 使用Ant Design全局弹窗message

react 18 及以上&#xff0c;拥有并发模式&#xff0c;不允许在渲染过程中直接触发副作用&#xff08;如弹窗、网络请求等&#xff09;&#xff0c;应将其放至 useEffect 中&#xff0c;确保其在渲染完成后调用 useEffect(() > {message.success(操作成功&#xff01;);}, …...

【spark3.2.4】--完全分布式集群搭建

一、spark-env.sh 文件配置&#xff08;操作路径&#xff1a;$SPARK_HOME/conf/spark-env.sh&#xff09; 如果还没创建&#xff1a; cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh然后编辑&#xff08;比如用 vim&#xff09;&#xff1a; vim…...

Web3技术下数字资产数据保护的实践探索

在这个信息爆炸的时代&#xff0c;数字资产已经成为我们生活中不可或缺的一部分。随着Web3技术的兴起&#xff0c;它以其去中心化、透明性和安全性的特点&#xff0c;为数字资产的管理和保护提供了新的解决方案。本文将探讨Web3技术在数字资产数据保护方面的实践探索&#xff0…...

灰度共生矩阵(GLCM)简介

灰度共生矩阵(GLCM)简介 1. 基本概念 灰度共生矩阵(Gray-level Co-occurrence Matrix, GLCM)是一种用于分析图像纹理特征的统计方法。它通过计算图像中特定空间关系的像素对出现的频率,来描述纹理的规律性1。 核心思想:统计图像中相距为d、方向为θ的两个像素点,分别具…...

基于javaEE+jqueryEasyUi+eclipseLink+MySQL的课程设计客房管理信息系统

1. 系统概述 1.1 系统功能概述 1)客户管理。能够增加一个客户&#xff0c;包括&#xff1a;身份证号、客户名称、出生年月、性别、联系电话、邮箱、会员类别等信息&#xff0c;默认会员类别为空&#xff1b;能够修改和删除客户信息&#xff1b;能够根据客户名称、联系电话查询…...

3款本周高潜力开源AI工具(多模态集成_隐私本地化)

本周聚焦 AI 技术领域&#xff0c;为开发者精选 3 款兼具创新性与实用性的开源项目。这些项目覆盖图像生成、智能助手、大语言模型框架等方向&#xff0c;通过技术突破解决开发痛点&#xff0c;助力开发者高效构建智能应用。 更多精彩科技推荐请点击->&#xff1a;更多精彩科…...

第一期第10讲

Linux常用的压缩文件扩展名有 .tar, .tar.bz2, .tar.gz 使用gzip压缩和解压缩 对单个文件压缩&#xff1a; gzip a.c //压缩a.c为a.c.gz gzip -d a.c.gz //解压缩为a.c 对文件夹压缩&#xff1a; gzip -r test //对test文件夹里的文件进行压缩&#xff0c;不对test进行压缩…...

计算方法在单细胞数据分析中的应用及AI拓展

单细胞技术的出现彻底革新了我们对生物系统的理解&#xff0c;揭示了看似同质的细胞群体内部复杂的异质性。为了从这些技术产生的大量复杂数据中提取有意义的见解&#xff0c;精密的计算方法是不可或缺的。 AI拓展 单细胞数据分析的核心在于处理和解释高维度数据的能力&#…...

如何配置环境变量HADOOP_HOMEM、AVEN_HOME?不配置会怎么样

以下是在不同操作系统中配置 HADOOP_HOME 和 JAVA_HOME 环境变量的方法&#xff0c;以及不配置可能产生的后果&#xff1a; 配置 HADOOP_HOME - Windows系统&#xff1a;下载并解压Hadoop安装包&#xff0c;然后右键“此电脑”&#xff0c;选择“属性”&#xff0c;点击“高级…...