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

python 中文编码

Python2 

Python2 中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 就行了

注意:# coding=utf-8 的 = 号两边不要空格。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print( "你好,世界" )

 Python3

在 Python 3 中,处理中文编码通常不是问题,因为 Python 3 默认使用 UTF-8 编码。这意味着你可以无缝地处理中文字符,无需进行额外的编码转换。以下是一些处理中文编码的常见场景和方法:

基本的字符串操作

在 Python 3 中,字符串类型是 Unicode 字符串,这意味着你可以直接处理中文字符:

# 直接定义中文字符串
s = "你好,世界!"

# 打印字符串
print(s)  # 输出: 你好,世界!

# 长度计算
print(len(s))  # 输出: 5

# 字符串切片
print(s[0])  # 输出: 你

文件读写

当你读写包含中文的文件时,需要确保指定正确的编码:

# 写入文件
with open('example.txt', 'w', encoding='utf-8') as f:
    f.write("你好,世界!\n")

# 读取文件
with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    print(content)  # 输出: 你好,世界!

处理外部数据

如果你从外部系统接收数据(如数据库、网络请求等),确保在接收和发送数据时使用 UTF-8 编码:

# 发送 HTTP 请求
import requests

response = requests.get('http://example.com/api/data', params={'q': '查询'})
response.encoding = 'utf-8'  # 确保响应以 UTF-8 编码
print(response.text)

# 数据库操作
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建表
cursor.execute('CREATE TABLE IF NOT EXISTS data (content TEXT)')

# 插入中文数据
cursor.execute('INSERT INTO data (content) VALUES (?)', ("你好,世界!",))

# 查询中文数据
cursor.execute('SELECT content FROM data')
print(cursor.fetchone()[0])  # 输出: 你好,世界!

conn.commit()
conn.close()

命令行参数

如果你的 Python 脚本接受命令行参数,并且参数中包含中文,确保在解析这些参数时使用正确的编码:

import sys

# 假设命令行参数包含中文
if len(sys.argv) > 1:
    print(sys.argv[1])  # 输出: 包含中文的参数

在大多数情况下,Python 3 的默认 UTF-8 编码已经足够处理中文字符。只有在与旧系统或特定编码要求的系统交互时,才需要特别注意编码问题。


http://www.kler.cn/a/546153.html

相关文章:

  • LeetCode刷题第6题【Z 字形变换】---解题思路及源码注释
  • 跟着李沐老师学习深度学习(十一)
  • 2025年关于css面试题及其答案解析
  • 你如何利用SIMD(如SSE/AVX)优化图像处理的性能?
  • MySQL一些常见的索引失效情况
  • Spring Task定时任务完全指南
  • 深入解析哈希表:原理、实现与应用
  • visual studio导入cmake项目后打开无法删除和回车
  • Go 语言调用 SiliconFlow 的 Deepseek AI Janus-Pro-7B 模型进行图像生成
  • HC32F460_AOS自动运行系统
  • 什么是偏光环形光源
  • 掌握 systemd:Linux 服务管理的核心工具
  • 数据结构——Makefile、算法、排序(2025.2.13)
  • LabVIEW太阳能制冷监控系统
  • 【天地图】绘制、删除点线面
  • 【如何掌握CSP-J 信奥赛中的暴力算法】
  • 同.NET 8一起发布的C#12语法中新特性及用法演示
  • Xilinx kintex-7系列 FPGA支持PCIe 3.0 吗?
  • 【数据处理】使用python收集网络数据--爬虫基础
  • 《玩转AI大模型:从入门到创新实践》(10)附录一、AI工具百宝箱