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

多字节字符和宽字符

小时候,买东西的单位是一角、二角和五角,现在的单位是一元、五元和十元。人类社会的发展和计算机发展本质没啥两样,形态不同而已。

编码格式的历史

尽管早期只用ASCII码就可以表达所有字符,但计算机日益推广让其他国家不同语言的程序员也要表达自己国家的语言。比如中文、日文等等。出现了两个派别,一个是每个字符用固定字节数,一个是用不同字节数,但可以做兼容。

  • 宽字符:比如Unicode16或Unicode32,但这与已有的ASCII码(7bit或8bit)不兼容。同时,ASCII码使用很广泛,英文字母使用很多,宽字符反而浪费空间。
  • 多字节:多字节有不同形式,例如UTF-8,ASCII码占1字节,带变音符号的拉丁文等语言占2字节,大部分日韩、东南亚和中东使用的字符占3字节,其他极少数被使用的占4字节。这种编码格式兼容ASCII, 但中文占用空间较大。

不同语言的字符编码

  • Java/C# 字符类型默认是Unicode-16.
  • Python 2默认用ASCII码,Python 3默认是UTF-8编码,尽管如此,在2.1版本之后可以加”# -*- coding:“显式指明编码。
  • Go/Rust默认用UTF-8.
  • JS作为脚本语言,寄宿在HTML中随HTML编码影响,同时也可被script标签编码控制。

为了统一,源代码中字符串的编码和源代码编码保持一致。随着IDE不断发展,IDE可保存源代码为不同编码格式,编译器识别它们的不同,并正确识别源代码和内部的字符串。

为了搞清楚不同编程语言对编码的支持,对Python而言,可以用不同的coding设定和文件保存格式验证数据输出是否如预期。


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

http://www.lryc.cn/news/436627.html

相关文章:

  • C++缺省参数
  • 深度学习中的常用线性代数知识汇总——第一篇:基础概念、秩、奇异值
  • MATLAB | R2024b更新了哪些好玩的东西?
  • 嵌入式硬件基础知识
  • keepalived和lvs高可用集群
  • 在VMware部署银河麒麟系统
  • git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
  • Tensorflow 兼容性测试-opencloudos
  • Windows主机上安装CUPS服务端共享USB打印机实践心得
  • socket通讯原理及例程(详解)
  • vue3使用provide和inject传递异步请求数据子组件接收不到
  • 对称矩阵的压缩存储
  • 高阶数据结构之哈希表基础讲解与模拟实现
  • 基于STM32设计的智能货架(华为云IOT)(225)
  • JDBC API详解一
  • 工厂安灯系统在设备管理中的重要性
  • 【LabVIEW学习篇 - 23】:简单状态机
  • 【CSS】 Grid布局:现代网页设计的基石
  • jQuery UI API 文档
  • 盘点2024年大家都在用的录屏工具
  • 【大数据】探索怎么从一段话中解析关键信息(寄件人相关信息)
  • 初学者指南:MyBatis 入门教程
  • reader-lm:小模型 html转markdown
  • 进击J6:ResNeXt-50实战
  • 新代机床采集数据
  • 景联文科技:专业数据标注公司,推动AI技术革新
  • k8s以及prometheus
  • android 权限说明
  • <winsock>重叠IO模型
  • Android Tools | 如何使用Draw.io助力Android开发:从UI设计到流程优化