标题:求助: 编码-如何区分 [ANSI] 和 [无BOM的UTF8] 这两种编码
只看楼主
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
结帖率:97.22%
已结贴  问题点数:20 回复次数:11 
求助: 编码-如何区分 [ANSI] 和 [无BOM的UTF8] 这两种编码
编码-如何区分 [ANSI] 和 [无BOM的UTF8] 这两种编码

ANSI 936 GBK 2个字节 表示一个汉字。
无BOM的UTF8  3个字节 表示一个汉字。

C++如何区分 文本文件是GBK还是无BOM的UTF8
不要告诉我显示出来,看是不是乱码就知道了。。。。

搜索更多相关主题的帖子: GBK 汉字 表示 字节 编码 
2022-09-10 14:26
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
得分:3 
https://blog.
可以看看
2022-09-10 14:40
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 2楼 op123
还是没有用呀!!!
没说明C++ 如何区分 [ANSI] 和 [无BOM的UTF8] 这两种编码
2022-09-10 15:11
chenyucheng
Rank: 3Rank: 3
来 自:浙江省台州市临海市
等 级:论坛游侠
威 望:3
帖 子:141
专家分:181
注 册:2022-7-1
得分:3 
如果好多的都是按照UTF-8规则,那么utf-8,否则
如果好多的都是按照GBK规则,那么GBK,否则一般选择是GBK。

爱玩编程的小学生,有Python,但只会一点点C++。

版主->斑竹->竹子,所以版主是竹子。(doge)
//不要让我当版主
2022-09-10 20:27
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 4楼 chenyucheng
如何让程序,自动识别
2022-09-10 20:35
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:3 
知乎上一个问答,供参考:https://www.
2022-09-10 20:36
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 6楼 不会游泳的虾
有BOM的好区分。
无BOM的UTF-8和ANSI如何区分。。。。
2022-09-10 22:42
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
得分:3 
懵了
2022-09-11 16:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
UTF-8以8bit为单元可变长的一种多字节编码字符集
表示一个Unicode字符时,它可以是1个至多个字节
编码规则:
1字节:0xxxxxxx
2字节:110xxxxx 10xxxxxx
3字节:1110xxxx 10xxxxxx 10xxxxxx
4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
..........
可以按编码规则去判断
2022-09-11 17:09
chenyucheng
Rank: 3Rank: 3
来 自:浙江省台州市临海市
等 级:论坛游侠
威 望:3
帖 子:141
专家分:181
注 册:2022-7-1
得分:5 
回复 5楼 追梦人zmrghy
UTF-8 规则:
程序代码:
UTF-8 用一到四个字节表示字符。
一个字节:0*******                            (7位)
两个字节:110***** 10******                   (11位)
三个字节:1110**** 10****** 10******          (16位)
四个字节:11110*** 10****** 10****** 10****** (21位)
以此类推,理论上最多能到六个字节(第一个字节已经是1111110*),但由于Unicode范围是U+0000到U+10FFFF(0x10FFFF=十进制1114111=长21位的二进制10000 11111111 11111111),所以最多四个字节足矣。

(其中星号部分表示Unicode的二进制码,并且全都用二进制表示编码,除了U+和0x开头的是十六进制)

[此贴子已经被作者于2022-9-11 20:57编辑过]


爱玩编程的小学生,有Python,但只会一点点C++。

版主->斑竹->竹子,所以版主是竹子。(doge)
//不要让我当版主
2022-09-11 20:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509995-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083839 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved