UTF8二进制数据在控制台打印成字符(C/C++)

本文介绍了如何在C/C++程序中处理UTF-8格式的二进制汉字数据,通过转换为Unicode并利用Windows控制台打印汉字的方法。参考了多个在线资源来实现这一过程。
摘要由CSDN通过智能技术生成

最近工作中遇到一个问题:写一个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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值