星空网 > 软件开发 > 操作系统

windows自带记事本导致文本文件(UTF

转自:http://www.cnblogs.com/zhbzz2007/p/4283194.html

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

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

windows自带记事本导致文本文件(UTFimages/loading.gif' data-original="http://common.cnblogs.com/images/copycode.gif" />
#include <stdio.h>#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<strlen(strLine); i++)//将每各字符串中的字符以十六进制格式打印出来    {      printf("%x ",strLine[i]);    }    printf("\n\n");  }  fclose(fp);  return 0;}
windows自带记事本导致文本文件(UTF

 

输入文件:

windows自带记事本导致文本文件(UTF
tsinghua pressmp18evaluating method for the double imagejiaoyuxvshibalancing mechanismhthramplificationbionic optimization algorithma r ltcb
windows自带记事本导致文本文件(UTF

 

输出文件:

windows自带记事本导致文本文件(UTF
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
windows自带记事本导致文本文件(UTF

 

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

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

windows自带记事本导致文本文件(UTF




原标题:windows自带记事本导致文本文件(UTF

关键词:Windows

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流