C将char数组(字符串)UTF8格式转换为CP1252(ASCII)格式

时间:2018-07-20 10:10:49

标签: c utf-8 format buffer

我有两个C源文件:

  1. 第一个文件以UTF-8格式保存
  2. 第二个文件以CP1252格式保存。

我的示例消息是char mybuffer[] = "lé\r\n";

在UTF-8源文件中,已使用5个字节对字符串进行编码:

6C C3 A9 0D 0A

在CP1252源文件中,已使用4个字节对字符串进行编码:

6C E9 0D 0A

我知道这两个结果很好,因为您可以设置输出格式以正确读取这两个结果。

但是我需要将UTF-8数组变量转换为CP1252格式。

我只使用C语言。

1 个答案:

答案 0 :(得分:-1)

如果文件是源代码文件,则必须告诉编译器每个源的“字符集”是什么。您可能默认情况下正在执行此操作。如果两个文件的编码不同,则可能必须分别对每个文件运行编译器。如果显示出差异,则说明您做错了。

或者,将源文件编码转换为相同的编码,以使您的项目更简单。但是,这并不能满足告诉编译器正确编码的要求。 这适用于使用任何程序打开任何文本文件或与其他人交流。