我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux之系统编码,python编码,

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux之系统编码,python编码,

如果你对python2和python3的中编解码很清楚,这里我认为你很清楚。

具体参考文档:

“python2 encode和decode函数说明.docx”

“字符编码——从ASCII开始.docx”

以上所有文档均为本地文档。

sys.getdefaultencoding(): 获取系统当前编码,这里的系统指的是python自己的内置系统,并非操作系统,即3中的python编码。

sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding(‘utf8’),此时将系统默认编码设置为utf8。

sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回’mbcs’,mac下返回’utf-8’.

这部分内容可参见“Python判断当前操作系统类型以及os, sys, platform模块简介”

其实我认为这部分对后面的故障定位没作用。

3.1   系统编码

默认写源码的编辑器的编码方式。它代表源码文件内的所有内容都是根据此方式编码成二进制码流。存入到磁盘中的。linux下通过locale命令查看。

这部分编码就是所谓的编辑器的编码,例如vi命令。

补充:如你在linux终端,直接从其他地方将文本拷贝如linux中,此时将采用系统编码进行编码,通过locale命令查看:

[Asion@mobile220~]$ locale

LANG=GBK

LC_CTYPE="C"

LC_NUMERIC="C"

LC_TIME="C"

LC_COLLATE="C"

LC_MONETARY="C"

LC_MESSAGES="C"

LC_PAPER="C"

LC_NAME="C"

LC_ADDRESS="C"

LC_TELEPHONE="C"

LC_MEASUREMENT="C"

LC_IDENTIFICATION="C"

LC_ALL=C

[Asion@mobile220Python3]$ more ENV.sh

#!/bin/bash

export LC_ALL="en_US.UTF-8"

export LANG="en_US.UTF-8"

[Asion@mobile220Python3]$ source ENV.sh

[Asion@mobile220Python3]$ locale

LANG=en_US.UTF-8

LC_CTYPE="en_US.UTF-8"

LC_NUMERIC="en_US.UTF-8"

LC_TIME="en_US.UTF-8"

LC_COLLATE="en_US.UTF-8"

LC_MONETARY="en_US.UTF-8"

LC_MESSAGES="en_US.UTF-8"

LC_PAPER="en_US.UTF-8"

LC_NAME="en_US.UTF-8"

LC_ADDRESS="en_US.UTF-8"

LC_TELEPHONE="en_US.UTF-8"

LC_MEASUREMENT="en_US.UTF-8"

LC_IDENTIFICATION="en_US.UTF-8"

LC_ALL=en_US.UTF-8

3.2   python编码

指python内设置的解码方式。如果不设定的话,python默认的是ascii解码方式。如果python源代码文件中不出现中文的话,这个地方怎么设定应该不会问题。设定方法:在源码文件开头(一定是第一行):#-*-coding:UTF-8-*-,源码文件的设置解码方式是UTF-8

3.3   文件编码

文本的编码方式,linux下vim利用set fileencoding查看。

注意使用这个命令查看编码时,需保证locale下的

LC_ALL="en_US.UTF-8"

LANG="en_US.UTF-8"

与你当时编码这个文件时一致,否则显示不出来。

PS:当时我vi sendmail.py的文件编码是utf-8,即locale下显示是en_US.UTF-8;

[Asion@mobile220 Python3]$ ls

ENV.sh sendmail.py

[Asion@mobile220Python3]$ locale

LANG=GBK

….

LC_ALL=C

这样的环境下去查看文件编码:

wKioL1kYVbiTKgKZAAB1PfiJUvg804.png-wh_50


中文显示直接乱码了,使用setfileencoding查看压根没有输出:

wKiom1kYVbjA3fupAACAl5VVuVg864.png-wh_50

环境初试回去后查看

[Asion@mobile220Python3]$ source ENV.sh

[Asion@mobile220Python3]$ locale

LANG=en_US.UTF-8

LC_ALL=en_US.UTF-8

wKioL1kYVbnxeKpKAACFKDKAlaI397.png-wh_50

就是你再牛逼的程序员,不推荐去动服务器的编码,除非服务器就只跑你自己的程序。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux之系统编码,python编码,

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux之系统编码,python编码,

如果你对python2和python3的中编解码很清楚,这里我认为你很清楚。具体参考文档:“python2 encode和decode函数说明.docx”“字符编码——从ASCII开始.docx”以上所有文档均为本地文档。sys.getde
2023-01-31

Linux系统怎么修改系统编码

这篇文章主要介绍了Linux系统怎么修改系统编码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Windows的默认编码为GBK,Linux的默认编码为UTF-8,在Windo
2023-06-28

python系统编码-稍后更新

安装IDLE (Python GUI)时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x
2023-01-31

Python之再说编码

'''编码回顾 :    ASCII : 一个字节,包括数字,字母,特殊字符;    GBK : 国标码,占用两个字节,包括中文,部分日文,韩文等;    UNICODE : 万国码, 四个字节,包含世界上所有国家的字符;    UTF-8
2023-01-31

Python之string编码问题

这篇文章主要介绍了Python之string编码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-28

Linux系统如何查看文件编码

这篇“Linux系统如何查看文件编码”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何查看文件编码”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们
2023-06-28

Linux系统怎么修改默认编码

Linux系统怎么修改默认编码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Linux系统的默认编码设置。/etc/sysconfig/i18nContro
2023-06-28

Python反编译之字节码

如果你曾经写过或者用过 Python,你可能已经习惯了看到 Python 源代码文件;它们的名称以.Py 结尾。你可能还见过另一种类型的文件是 .pyc 结尾的,它们就是 Python “字节码”文件。(在 Python3 的时候这个 .p
2023-01-31

python基础之字符编码

一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word)#1、打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失#2、要想永久保存,需要点击保
2023-01-30

python黑魔法之编码转换

我们在使用其他语言的库做编码转换时,对于无法理解的字符,通常的处理也只有两种(或三种):抛异常替换成替代字符跳过但是在复杂的现实世界中,由于各种不靠谱,我们处理的文本总会出现那么些不和谐因素,比如混合编码。在这种情况下,又回到了上面的处理办
2022-06-04

Python HTML编码解码

>>> import HTMLParser>>> h = HTMLParser.HTMLParser()>>> h.unescape("")u'\u59d3\u540d\uff1a'>>> s = h.unescape("")>>> pri
2023-01-31

python编码总结(编码类型、格式、转码)

本文详细总结了python编码。分享给大家供大家参考,具体如下: 【所谓unicode】 unicode是一种类似于符号集的抽象编码,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。也就是它只是一种内部表示,不能直接保存。
2022-06-04

Python Unicode编码

使用技巧事实上,只要遵守以下规则,可以规避90%由于Unicode字符串处理引起的bug,剩下的10%通过python的库和模块能够解决。程序中出现字符串时一定要加个前缀u。不要用str()函数,用unicode()代替。不要用过时的str
2023-01-31

用python查看和更改系统默认编码

用python查看和更改系统默认编码  python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't deco
2023-01-31

编程热搜

目录