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

10乱码问题的解释(1)

在计算机中,一个汉字,占几个字节?


针对这个问题,只要你回答出一个具体的数字,就一定是错的!!
前提条件: 当前中文编码使用的是哪种方式(字符集)
计算机存的其实是二进制数字~~
英文字母,怎么表示的?? ASCII 码表~~ 规定了每个字符,都有一个对应的数字来表示~~

只是表示英文,一个字节足够了~~ 毕竟英文字母数目非常有限~~

 中文中一共多少个汉字呢?
日常的常用字,大概是 4k 多个
算上各种生僻字,总数差不多 6w 左右~~

对于计算机来说,6w 多个符号的表格
就是小 case ~~

仍然使用一个大表格,给每个汉字,分配一个整数即可~~

具体这个表格,是啥样子?
具体每个汉字,都使用哪个数字表示??
这个事情就不一定了!!
字符集~~ 表示汉字的字符集, 其实是有很多种的!!!
不同的字符集,表示同一个汉字,使用的数字不相同!!

目前,表示汉字字符集,主要是两种方式
1.GBK.(中国大陆) 使用 2 个字节表示一个汉字
Windows 简体中文版默认的字符集就是 GBK


2. UTF-8 / utf8
变长编码.表示一个符号,使用的字节数有变化,2-4
但是在 utf8 中,一个汉字,一般是 3 个字节
Linux 默认就是 utf8

一个汉字,具体的 utf8/gbk 编码的数值是多少,可以通过一些在线工具来查看~~

编码工具

 

 

size_t strlen ( const char * str );

size_t 的大小取决于具体的平台和编译器。通常:

  • 在 32位系统 上,size_t 一般是 4 字节(32位)。---"%d"

  • 在 64位系统 上,size_t 一般是 8 字节(64位)。---"%ld"

 

相关文章:

  • GLPI 在企业 IT 资产全生命周期管理中的价值
  • thinkcmf搭建
  • Thinkpad t14的startup 没有 UEFI/Legacy Boot 选项,如何设为U盘启动
  • 【Easylive】MySQL中LEFT JOIN与INNER JOIN的使用场景对比
  • c# 虚函数、接口、抽象区别和应用场景
  • C语言复习--assert断言
  • 一起学习大语言模型-常用命令及模型介绍
  • 输电线路航空标志球:低空飞行的安全路标 / 恒峰智慧科技
  • WiFi(无线局域网)技术的多种工作模式
  • Nest.js学习路径
  • Linux SDHCI 驱动解析:硬件原理与核心机制全解
  • 实现一个分布式锁需要考虑哪些问题
  • Windows 平台下AnythingLLM本地开发环境运行踩坑记录
  • Git相关笔记1 - 本地文件上传远程仓库
  • rdp,ssh,云主机,虚拟主机,宝塔,远程桌面是什么
  • 2025 年浙江特种设备考试攻略:细节决定成败​
  • Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备状态监测中的应用与挑战(167)
  • 【注解和interface的那点事】
  • 选择省市区
  • 图基RAG方法全景分析 | 高级检索增强生成技术Graph-based RAG
  • 广西桂林、百色、河池等地表态:全力配合中央对蓝天立的审查调查
  • 浙江理工大学传播系原系主任刘曦逝世,年仅44岁
  • 国寿资产获批参与第三批保险资金长期投资改革试点
  • 美国务卿鲁比奥抵达会场,将参加俄乌会谈
  • 中国军网:带你揭开3所新调整组建军队院校的神秘面纱
  • 媒体评欧阳娜娜遭民进党当局威胁:艺人表达国家认同是民族大义