小

小南瓜

技术问题总结

  • 首页
Home c++实现gbk、utf8编码转换
文章

c++实现gbk、utf8编码转换

Posted 2024-02-25 Updated 2024-02- 25
By 小南瓜
3~4 min read

在c++开发中经常用到的gbk、utf-8编码转换方法。

需要头文件

#include <Windows.h>
#include <string>

using namespace std;

gbk转utf8代码

string GBKToUTF8(const std::string& strGBK)
{
    string strOutUTF8 = "";
    WCHAR * str1;
    int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
    str1 = new WCHAR[n];
    MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
    n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
    char * str2 = new char[n];
    WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
    strOutUTF8 = str2;
    delete[]str1;
    str1 = NULL;
    delete[]str2;
    str2 = NULL;
    return strOutUTF8;
}

utf8转gbk代码

string Utf8ToGbk(const char *src_str)
{
    int len = MultiByteToWideChar(CP_UTF8, 0, src_str, -1, NULL, 0);
    wchar_t* wszGBK = new wchar_t[len + 1];
    memset(wszGBK, 0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 0, src_str, -1, wszGBK, len);
    len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    char* szGBK = new char[len + 1];
    memset(szGBK, 0, len + 1);
    WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, szGBK, len, NULL, NULL);
    string strTemp(szGBK);
    if (wszGBK) delete[] wszGBK;
    if (szGBK) delete[] szGBK;
    return strTemp;
}

编程开发
C++
License:  CC BY 4.0
Share

Further Reading

Nov 29, 2024

Java使用oshi-core获取服务器、CPU、JVM、内存、磁盘等信息

最近在弄后台管理系统,但由于功能不太多,准备弄个系统信息的界面来丰富下,经过查询,发现java中有oshi库可以很方便的获取系统信息。 oshi是什么 oshi是一个基于Java的开源库,它能够跨平台地获取操作系统、硬件和系统资源的信息。它利用底层操作系统的API,以统一的接口形式为Java应用程序

Nov 14, 2024

Java PKIX SSL证书校验错误及解决方案

服务器上程序发起https请求时,有些时候会遇到下面的错误: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcept

Feb 25, 2024

c++中string和wstring相互转换

string转wstring代码 wstring StringToWString(const string &amp;str) { int num = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0); wchar_t

OLDER

CMAKELIST编译后复制文件到指定目录

NEWER

c++中string和wstring相互转换

Recently Updated

  • Java使用oshi-core获取服务器、CPU、JVM、内存、磁盘等信息
  • 基于vue3、antvue、cropperjs轻松实现图片完美裁剪,打造个性化上传体验
  • Java PKIX SSL证书校验错误及解决方案
  • Centos升级openssl
  • 前端项目运行、打包是提示ERR_OSSL_EVP_UNSUPPORTED错误

Trending Tags

Halo C++ vite centos openssl java springboot vue 前端

Contents

©2025 小南瓜. Some rights reserved. 粤ICP备20020668号-1

Using the Halo theme Chirpy