Linux字符集和编码
计算机内部,所有信息最终都是一个二进制值形式存放
字符集
字符集:charset是character set的简写,即二进制和字符的对应关系,不关注最终的存储形式
编码
字符集编码:encoding是charset encoding的简写。实现如何将字符转化为实际的二进制进行存储或相反,编码决定了空间的使用的大小
ASCII码
ASCII码:(American Standard Code for Information Interchange),美国制定的一套编码,,对英语字符与二进制位之间的关系,做了统一规定。
ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为 0
数字:
0 ---48(十进制)
字母:
A---65
a---97
回车(不可见):
回车:老式打字机的喷头从右挪到左边来(回来原来的位置)
回车 --- od(十六进制)
换行:
换行:往上挪一行
换行 --- oa(十六进制)
linux和windows文本文件的区别:
linux中用oa(换行)表示回车和换行。
windows用oa 和od表示回车和换行。
出现这个差异的原因:早期unix内存很小,为了节约空间。
- 以十六进制的形式查看一个文件的内容: hexdump命令
- windows文本文件转为linux文本文件: dos2unix工具
Unicode
Unicode: 因为每个国家的语言不同,每个国家都有自己的标准,多语言混合的时候就会出现乱码。为了解决这个问题,发明了Unicode字符集
Unicode编码方案:
UTF-8:变长,1到4个字节
兼容ASCII码。用一个字节来表示常用的ASCII码,用2-4个字节表示不同国家的文字。
UTF-16:变长,2或4个字节
UTF-32:固定长度,4个字节
范例:修改LANG变量实现中文语言提示
更改LANG变量的值。
LANG=zh_CN.UTF-8
Linux字符集和编码的更多相关文章
- java中的字符集和编码
前言 上次对计算机中的“字符集”和“编码”分别进行了总结,并指出二者之间的区别,不要搞混了,不清楚的再回到上一章看一下.今天再总结下java中是如何使用字符集(主要是Unicode字符集,其他常用字符 ...
- 【转载】Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解
Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解 1清风揽月10人评论5006人阅读2017-06-21 15:48:43 博文说明[前言]: 本文 ...
- WEB开发中的字符集和编码
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Ruby:字符集和编码学习总结
背景 Ruby直到1.9版本才很好的支持了多字节编码,本文简单总结了今天学习的关于Ruby编码方面的知识. 字符串可以使用不同的编码 在.NET中字符串的编码是一致的,Ruby允许字符串有不同的编码, ...
- .NET:字符集和编码学习总结
背景 一直没有深入的学习字符集和编码的知识(现在也没有深入),今天查阅了一些资料,弄明白了一些事情,本文就简单记录一下. 字符集和编码 字符集是指一些符号组成的集合,编码是对指定字符集如何表示为字节的 ...
- 字符集和编码——Unicode(UTF&UCS)深度历险
计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因为那时只需要存下一些英文字母和符号.后来虽然扩展到 ...
- C#和VC++字符集和编码
C# char 关键字用于声明 .NET framework 使用 Unicode 字符表示 System.Char 结构的实例. Char 对象的值是 16 位数字 (序号值.)将字符表示为 UTF ...
- Unicode字符集和编码方式
通常将一个标准中能够表示的所有字符的集合称为字符集,比如ISO/Unicode所定义的字符集为Unicode.在Unicode中,每个字符占据一个码位/Unicode 编号(用4位十六进制数表示,Co ...
- 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)
具体到文件名乱码的问题,需要明确两点 第一,文件名作为一个字符串,需要被编码后存入文件系统: 第二,Linux内核无非是个特殊的应用程序,它读取文件名,再把文件名以编码后的形式传递出去. 但Linux ...
随机推荐
- 5.Java程序运行机制
一.编译型和解释型语言区别 计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以任何的高级语言编写的程序都必须转换成计算机语言,也就是机器码.而这种转换的方式有两种: 编译 ...
- css 第二排文字居中
text-align: center; 超过长度 自动换行居中
- python 多进程共享全局变量之Manager()
Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和A ...
- 【第五课】VIM编辑器(学习笔记)
4月10日学习笔记打卡
- 解决:Could not resolve dependencies for project xxx: Could not find artifact xxx
引言 运行A module,找不到B module的依赖报错.A.B module都在project中. 报错信息 [INFO] Scanning for projects... [INFO] [IN ...
- gol处理命令行参数 flag
os.Args获取命令行参数 os.Args是一个srting的切片,用来存储所有的命令行参数 package main import ( "fmt" "os" ...
- Json序列化与反序列化导致多线程运行速度和单线程运行速度一致问题
紧跟上篇文章 十个进程开启十个bash后一致写入命令执行完毕之后产生了很多很多的文件,博主需要对这些文件同意处理,也就是说对几十万个文件进行处理,想了又想,单线程处理那么多数据肯定不行,于是乎想到了使 ...
- Spring Boot 动态修改 log level
引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- Nginx基本配置与应用
一.准备 1.1 环境准备 CentOS7软件环境 1.2 tomcat多实例 把/etc/profile.d/tomcat.sh中的变量注释了 #export TOMCAT_HOME=/usr/lo ...
- Java高并发-Java内存模型和线程安全
一.原子性 原子性是指一个操作是不可中断的.即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰. i++是原子操作吗? 不是,包含3个操作:读i,i=i+1,写i 32位的机子上读取 ...