最近工作中遇到一个问题:写一个C程序,从一个文件中提取一段二进制数据(已知是UTF-8格式的汉字字符串数据),并将其表示的汉字串打印到WINDOWS控制台。我的解决办法是:首先,将数据从UTF8转换成Unicode;此次,根据Unicode编码打印对应的汉字字符。
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <memory.h>
#include <locale.h>
using namespace std;
struct wav_struct
{
unsigned long file_size; //文件大小
unsigned short channel; //通道数
unsigned long frequency; //采样频率
unsigned long Bps; //Byte率
unsigned short sample_num_bit; //一个样本的位数
unsigned long data_size; //数据大小
unsigned char *data; //音频数据
};
int utf8_to_unicode(uint8_t *in, int in_len, uint16_t **out, int *outsize)
{
uint8_t *p = in;
uint16_t *result = NULL;
int resultsize = 0;
uint8_t *tmp = NULL;
re