也只能乱码显示出来,我们可以发现文件开头三个字符乱码

转自:

windows自带记事本招致文本文件(UTF-8编码卡塔尔国起初八个字符乱码难点,文本文件utf-8

也只能乱码显示出来,我们可以发现文件开头三个字符乱码。转自:

在windows平台下,使用系统的记事本以UTF-8编码格式存款和储蓄了二个文本文件,不过出于Microsoft开拓记事本的团体选取了三个老大诡异的行事来保存UTF-8编码的文件,它们自作聪明地在种种文件开端增加了0xefbbbf(十二进制卡塔尔的字符,所以大家就能够蒙受多数顾来说他的标题,举个例子,网页第生机勃勃行恐怕会来得一个“?”,明明精确的前后相继一编译就报出语法错误,等等。

上面为风姿洒脱段测量检验程序,由记事本编辑的文件文件导致文件初始前多个字符乱码。

图片 1

#include <stdio.h>
#define MAX_LEN 100

int 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("nn");
    }
    fclose(fp);
    return 0;
}

图片 2

 

输入文件:

图片 3

tsinghua press
mp18
evaluating method for the double image
jiaoyuxvshi
balancing mechanism
hthr
amplification
bionic optimization algorithm
a r l
tcb

图片 4

 

出口文件:

图片 5

str = 锘縯singhua press
ffffffef  ffffffbb  ffffffbf  74  73  69  6e  67  68  75  61  20  70  72  65  73
  73  a

str = mp18
6d  70  31  38  a

str = evaluating method for the double image
65  76  61  6c  75  61  74  69  6e  67  20  6d  65  74  68  6f  64  20  66  6f
72  20  74  68  65  20  64  6f  75  62  6c  65  20  69  6d  61  67  65  a

str = jiaoyuxvshi
6a  69  61  6f  79  75  78  76  73  68  69  a

str = balancing mechanism
62  61  6c  61  6e  63  69  6e  67  20  6d  65  63  68  61  6e  69  73  6d  a

str = hthr
68  74  68  72  a

str = amplification
61  6d  70  6c  69  66  69  63  61  74  69  6f  6e  a

str = bionic optimization algorithm
62  69  6f  6e  69  63  20  6f  70  74  69  6d  69  7a  61  74  69  6f  6e  20
61  6c  67  6f  72  69  74  68  6d  a

str = a r l
61  20  72  20  6c  a

str = tcb
74  63  62  a

图片 6

 

大家能够开采文件开端多个字符乱码,各种汉字占用四个字符,因而第四个字符本来为‘t’,也只可以乱码展现出来。

之所以,能够选取Notepad++代替记事本。须要将Notepad++的默许编码设置为UTF-8
without BOM就可以;

图片 7

转自:
在windows平台下…

在windows平台下,使用系统的记事本以UTF-8编码格式存款和储蓄了叁个文本文件,可是出于Microsoft开垦记事本的团体利用了叁个不行稀奇的一坐一起来保存UTF-8编码的公文,它们班门弄斧地在各种文件早先加多了0xefbbbf(十四进制卡塔 尔(英语:State of Qatar)的字符,所以大家就能够遇上不菲语无伦次的题目,比方,网页第黄金时代行恐怕会显得贰个“?”,明明正确的次序一编译就报出语法错误,等等。

下边为意气风发段测量检验程序,由记事本编辑的公文文件引致文件初叶前四个字符乱码。

图片 8

#include <stdio.h>
#define MAX_LEN 100

int 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("nn");
    }
    fclose(fp);
    return 0;
}

图片 9

 

输入文件:

图片 10

tsinghua press
mp18
evaluating method for the double image
jiaoyuxvshi
balancing mechanism
hthr
amplification
bionic optimization algorithm
a r l
tcb

图片 11

 

输出文件:

图片 12

str = 锘縯singhua press
ffffffef  ffffffbb  ffffffbf  74  73  69  6e  67  68  75  61  20  70  72  65  73
  73  a

str = mp18
6d  70  31  38  a

str = evaluating method for the double image
65  76  61  6c  75  61  74  69  6e  67  20  6d  65  74  68  6f  64  20  66  6f
72  20  74  68  65  20  64  6f  75  62  6c  65  20  69  6d  61  67  65  a

str = jiaoyuxvshi
6a  69  61  6f  79  75  78  76  73  68  69  a

str = balancing mechanism
62  61  6c  61  6e  63  69  6e  67  20  6d  65  63  68  61  6e  69  73  6d  a

str = hthr
68  74  68  72  a

str = amplification
61  6d  70  6c  69  66  69  63  61  74  69  6f  6e  a

str = bionic optimization algorithm
62  69  6f  6e  69  63  20  6f  70  74  69  6d  69  7a  61  74  69  6f  6e  20
61  6c  67  6f  72  69  74  68  6d  a

str = a r l
61  20  72  20  6c  a

str = tcb
74  63  62  a

图片 13

 

大家得以窥见文件开头八个字符乱码,每一种汉字占用七个字符,由此第二个字符本来为‘t’,也只可以乱码呈现出来。

从而,能够动用Notepad++代替记事本。须求将Notepad++的私下认可编码设置为UTF-8
without BOM就可以;

图片 14

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图