1个文件[C]中2种不同的文本编码

1个文件[C]中2种不同的文本编码,c,encoding,C,Encoding,每个人都有好消息 我执行学习任务,它的工作与输入/输出文本的文件。一般来说,该计划的要点是: 打开文件 编码的定义(在测试文件中我有ANSI、UTF-8、UTF-16) 解析文本 将结果输出到文件 为了处理文本,我使用char和wchar类型和函数WideCharToMultiByte()。问题是,如果输入文件具有输出UTF-8或UTF-16编码,则输出文件具有两种不同的编码 第一部分是从输入文件复制文本的结果。 读取输入文件 while (!feof(file)) { w = get

每个人都有好消息 我执行学习任务,它的工作与输入/输出文本的文件。一般来说,该计划的要点是:

  • 打开文件
  • 编码的定义(在测试文件中我有ANSI、UTF-8、UTF-16)
  • 解析文本
  • 将结果输出到文件
  • 为了处理文本,我使用char和wchar类型和函数
    WideCharToMultiByte()
    。问题是,如果输入文件具有输出
    UTF-8
    UTF-16
    编码,则输出文件具有两种不同的编码

    第一部分是从输入文件复制文本的结果。 读取输入文件

    while (!feof(file)) 
    {
        w = getwc(file);    
        wch_buffer[i] = w;  
        i++;
    }
    
    转换为字符

    size = WideCharToMultiByte(CP_UTF8, 0, wch_buffer, -1, NULL, 0, NULL, NULL);    
    WideCharToMultiByte(CP_UTF8, 0, wch_buffer, -1, result, size, NULL, NULL);
    
    并添加到输出文件中

    fputs(ch_buffer, OutPut);
    
    第二部分是解析器添加的文本。在这两种情况下都有西里尔符号。 那样的事

    fprintf(OutPut,"\nОшибка. На строке %d обнаружен повторное открытие тега",Line);
    
    然后我在记事本++中打开输出文件并更改编码。在此之后,只有1部分文本可读(两部分都可读拉丁符号)。顺便说一下,在控制台里,一切都很好。 IDE VS2012

  • 2幅图片显示了在记事本中更改编码时发生的情况++


    问题是2在1个文件中编码,部分文本不可读。这似乎不是一个问题。。。什么事让你烦恼?你有什么问题?你能发布一些代码示例吗?通过发布这样的问题听起来更像垃圾邮件。编辑它,希望变得更清晰