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

文本文件的编码格式

文本文件的编码格式,都在**3A服务器**上进行测试

# 一、文本文件

- 文本文件存储的内容是基于 **字符编码** 的文件,常见的编码有 `ASCII` 编码,`UNICODE` 编码等

> Python 2.x 默认使用 `ASCII` 编码格式
> Python 3.x 默认使用 `UTF-8` 编码格式

# 二、ASCII 编码和 UNICODE 编码

## 2.1 `ASCII` 编码

- 计算机中只有 `256` 个 `ASCII` 字符
- 一个 `ASCII` 在内存中占用 **1 个字节** 的空间
  - `8` 个 `0/1` 的排列组合方式一共有 `256` 种,也就是 `2 ** 8`

## 2.2 `UTF-8` 编码格式

- 计算机中使用 **1~6 个字节** 来表示一个 `UTF-8` 字符,涵盖了 **地球上几乎所有地区的文字**
- 大多数汉字会使用 **3 个字节** 表示
- `UTF-8` 是 `UNICODE` 编码的一种编码格式

# 三、Python 2.x 中如何使用中文

> Python 2.x 默认使用 `ASCII` 编码格式
> Python 3.x 默认使用 `UTF-8` 编码格式

- 在 Python 2.x 文件的 **第一行** 增加以下代码,解释器会以 `utf-8` 编码来处理 python 文件

```
# *-* coding:utf8 *-*
```

> 这方式是官方推荐使用的!

- 也可以使用

```
# coding=utf8
```

## 3.1 unicode 字符串

- 在 `Python 2.x` 中,即使指定了文件使用 `UTF-8` 的编码格式,但是在遍历字符串时,仍然会 **以字节为单位遍历** 字符串
- 要能够 **正确的遍历字符串**,在定义字符串时,需要 **在字符串的引号前**,增加一个小写字母 `u`,告诉解释器这是一个 `unicode` 字符串(使用 `UTF-8` 编码格式的字符串)

```
# *-* coding:utf8 *-*

# 在字符串前,增加一个 `u` 表示这个字符串是一个 utf8 字符串
hello_str = u"你好世界"

print(hello_str)

for c in hello_str:
    print(c)
```

相关文章:

  • Mediapipe 在Android studio 运行官方的 FaceDetection
  • Java项目源码下载S2SH基于java的保险业务管理系统
  • CS5086E 双节锂电升压充电管理IC特点及应用
  • linux 输出重定向
  • win10任务栏卡死桌面正常的解决方法
  • NVIDIA:应将USD作为3D互联网的HTML标准语言
  • H5画布绘制笑脸
  • 【定制项目】【M14 监测预警平台】百度地图区域绘制(时间轴)/柱状图/仪表图 - 关键技术 python flask + echarts
  • RS笔记:深度推荐模型之SIM(基于搜索的超长行为序列上的用户长期兴趣建模)[CIKM 2020, 阿里妈妈广告团队]
  • 关于第一次接入Kotlin
  • C++中菱形类关系再理解
  • stack和queue的使用和模拟实现
  • 【C++】 string类常用接口的实现
  • 华为防火墙基础自学系列 | 汇总
  • TNet 中 JoinChannel 场景名可写可不写
  • JS 中的深拷贝与浅拷贝
  • css布局,左右固定中间自适应实现
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • es的写入过程
  • exports和module.exports
  • github指令
  • leetcode388. Longest Absolute File Path
  • Map集合、散列表、红黑树介绍
  • mysql 5.6 原生Online DDL解析
  • QQ浏览器x5内核的兼容性问题
  • React Native移动开发实战-3-实现页面间的数据传递
  • STAR法则
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • webgl (原生)基础入门指南【一】
  • 目录与文件属性:编写ls
  • 前端
  • 什么是Javascript函数节流?
  • 使用Gradle第一次构建Java程序
  • 思维导图—你不知道的JavaScript中卷
  • 智能网联汽车信息安全
  • ​iOS安全加固方法及实现
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • "无招胜有招"nbsp;史上最全的互…
  • # Apache SeaTunnel 究竟是什么?
  • #vue3 实现前端下载excel文件模板功能
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (70min)字节暑假实习二面(已挂)
  • (libusb) usb口自动刷新
  • (WSI分类)WSI分类文献小综述 2024
  • (三)模仿学习-Action数据的模仿
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)Mysql的优化设置
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • ***利用Ms05002溢出找“肉鸡
  • **PHP分步表单提交思路(分页表单提交)
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .Net7 环境安装配置