首页 > 解决方案 > 如何使用 c 对带有代码页的字符数组进行编码

问题描述

我在 C 中有 char 数组,我从二进制文件中读取,我想用特定的代码页进行编码

例如我想用 1252 代码页编码这个 char *

char myArray[] = { 0xa0, 0x90, 0x91, 0x96, 0xb0 };

结果需要是{ 0xa0, 0x90, 0x3F, 0x3F, 0xb0 }

我知道widechartomultibyte可以做到这一点,但它需要得到一个宽字符(如00a0,0090,0091,0096,00b0),而我只有 char * 而不是宽字符。

我也许可以将 c* 转换为宽字符,MultiByteToWideChar然后使用widechartomultibyte ,但是当我这样做时,它会损坏编码,并且转换两次看起来很奇怪。

那么如何在 Windows 中使用 c 中的特定代码页对 char * 进行编码?

标签: cwindowsencodingcodepageswidechar

解决方案


推荐阅读