博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows自带记事本导致文本文件(UTF-8编码)开头三个字符乱码问题
阅读量:5061 次
发布时间:2019-06-12

本文共 1714 字,大约阅读时间需要 5 分钟。

转自:

在windows平台下,使用系统的记事本以UTF-8编码格式存储了一个文本文件,但是由于Microsoft开发记事本的团队使用了一个非常怪异的行为来保存UTF-8编码的文件,它们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,所以我们就会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报出语法错误,等等。

下面为一段测试程序,由记事本编辑的文本文件导致文件开头前三个字符乱码。

#include 
#define MAX_LEN 100int main(){ char strLine[MAX_LEN]; int i = 0; memset(strLine,0x0,MAX_LEN); FILE * fp; fp = fopen("eng_query.txt","r"); if(NULL == fp) { printf("open file fail.\n"); return -1; } while(fgets(strLine,MAX_LEN,fp)) { printf("str = %s",strLine);//将每行字符串打印出来 for(i=0; i

 

输入文件:

tsinghua pressmp18evaluating method for the double imagejiaoyuxvshibalancing mechanismhthramplificationbionic optimization algorithma r ltcb

 

输出文件:

str = 锘縯singhua pressffffffef  ffffffbb  ffffffbf  74  73  69  6e  67  68  75  61  20  70  72  65  73  73  astr = mp186d  70  31  38  astr = evaluating method for the double image65  76  61  6c  75  61  74  69  6e  67  20  6d  65  74  68  6f  64  20  66  6f72  20  74  68  65  20  64  6f  75  62  6c  65  20  69  6d  61  67  65  astr = jiaoyuxvshi6a  69  61  6f  79  75  78  76  73  68  69  astr = balancing mechanism62  61  6c  61  6e  63  69  6e  67  20  6d  65  63  68  61  6e  69  73  6d  astr = hthr68  74  68  72  astr = amplification61  6d  70  6c  69  66  69  63  61  74  69  6f  6e  astr = bionic optimization algorithm62  69  6f  6e  69  63  20  6f  70  74  69  6d  69  7a  61  74  69  6f  6e  2061  6c  67  6f  72  69  74  68  6d  astr = a r l61  20  72  20  6c  astr = tcb74  63  62  a

 

我们可以发现文件开头三个字符乱码,每个汉字占用两个字符,因此第4个字符本来为‘t’,也只能乱码显示出来。

因此,可以使用Notepad++代替记事本。需要将Notepad++的默认编码设置为UTF-8 without BOM即可;

转载于:https://www.cnblogs.com/fnlingnzb-learner/p/5832396.html

你可能感兴趣的文章
STL容器之vector
查看>>
Linux 内核中断内幕
查看>>
DNS负载均衡
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
Oracle OEM 配置报错: No value was set for the parameter DBCONTROL_HTTP_PORT 解决方法
查看>>
01入门
查看>>
python正则表达式
查看>>
嵌套循环连接(nested loops join)原理
查看>>
shell统计特征数量
查看>>
复习文件操作
查看>>
C#Hashtable与Dictionary性能
查看>>
10个让你忘记 Flash 的 HTML5 应用演示
查看>>
8个Python面试必考的题目,小编也被坑过 ToT
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
centos 图形界面和命令行界面切换(转载)
查看>>
Maven启用代理访问
查看>>
Primary definition
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>