UTF-8、GBK等格式互相转换 【Windows/Linux 通用】

ops/2024/9/23 9:24:36/

UTF-8、GBK等格式互相转换 [Windows/Linux 通用]

#ifdef WIN32
#include <windows.h>
#endif#ifdef OS_UNIX
#include <iconv.h>
#endif#if defined(WIN32)
void convert_encoding(const char *input, int from_codepage, int to_codepage, char *output)
{int wlen = MultiByteToWideChar(from_codepage, 0, input, -1, NULL, 0);if (0 == wlen)return;wchar_t *wbuf = (wchar_t *)malloc((wlen + 1) * sizeof(wchar_t));MultiByteToWideChar(from_codepage, 0, input, -1, wbuf, wlen);int len = WideCharToMultiByte(to_codepage, 0, wbuf, -1, NULL, 0, NULL, NULL);if (0 == len){free(wbuf);return;}WideCharToMultiByte(to_codepage, 0, wbuf, -1, output, len, NULL, NULL);free(wbuf);
}
#else
void convert_encoding(const char *input, const char *from_encoding, const char *to_encoding, char *output)
{iconv_t cd = iconv_open(to_encoding, from_encoding);if (cd == (iconv_t)-1)return;size_t in_len = strlen(input);size_t out_len = in_len * 2; // 输出长度最多为输入长度的2倍char *in_ptr = input, *out_ptr = output;size_t ret = iconv(cd, &in_ptr, &in_len, &out_ptr, &out_len);if (ret == (size_t)-1){iconv_close(cd);return; // 转换失败}*out_ptr = '\0'; // 添加字符串结尾iconv_close(cd);
}
#endif// 用法例:// 从共享内存取到UTF-8格式的字符串res,转换为GBK格式字符串tmpstr
#ifdef WIN32convert_encoding(res, CP_UTF8, CP_ACP, tmpstr);
#elseconvert_encoding(res, "UTF-8", "GBK", tmpstr);
#endif

http://www.ppmy.cn/ops/44918.html

相关文章

ASTRONEER异星探险家服务器开服多人联机

1、购买后登录服务器 进入控制面板后会出现正在安装的界面&#xff0c;安装大约5分钟&#xff08;如长时间处于安装中请联系我们的客服人员&#xff09; 2、获取数字IP地址 使用IP 地址查询网站将服务器IP地址填入后点击查询&#xff08;查询的时候将地址冒号后方的数字以及冒…

基于EifficientNet的视网膜病变识别

分析一下代码 model.py ①下面这个方法的作用是&#xff1a;将传入的ch&#xff08;channel&#xff09;的个数调整到离它最近的8的整数倍&#xff0c;这样做的目的是对硬件更加友好。 def _make_divisible(ch, divisor8, min_chNone):if min_ch is None:min_ch divisornew…

NSSCTF | [SWPUCTF 2021 新生赛]no_wakeup

打开题目后&#xff0c;点击三个&#xff1f;&#xff0c;发现是一个php序列化脚本 <?phpheader("Content-type:text/html;charsetutf-8"); error_reporting(0); show_source("class.php");class HaHaHa{public $admin;public $passwd;public function…

配置阿里yum源

配置阿里yum源&#xff08;这个很重要&#xff09;&#xff1a;https://developer.aliyun.com/article/1480470 1.备份系统自带yum源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2.下载ailiyun的yum源配置文件 2.1 CentOS7 wge…

服装服饰商城小程序的作用是什么

要说服装商家&#xff0c;那数量是非常多&#xff0c;厂家/经销门店/小摊/无货源等&#xff0c;线上线下同行竞争激烈&#xff0c;虽然用户群体广涵盖每个人&#xff0c;但每个商家肯定都希望更多客户被自己转化&#xff0c;渠道运营方案营销环境等不可少。 以年轻人为主的消费…

昔日辉煌不再,PHP老矣,尚能饭否?

导语 | 近期 TIOBE 最新指数显示&#xff0c;PHP 的流行度降至了历史最低&#xff0c;排在第 17 名&#xff0c;同时&#xff0c;在年度 Stack Overflow 开发者调查报告中&#xff0c;PHP 在开发者中的受欢迎程度已经从之前的约 30% 萎缩至现在的 18%。“PHP 是世界上最好的语言…

C++笔试强训day30

目录 1.爱吃素 2.相差不超过k的最多数 3.最长公共子序列(一) 1.爱吃素 链接https://ac.nowcoder.com/acm/problem/227310 数学找规律题&#xff0c;注意开long long即可&#xff0c;因为数据太大。 一个为素数另一个为1相乘一定为素数&#xff0c;否则返回NO #include <…

探索零阶优化:在语言模型提示优化中的应用与原理【初步理解】

什么是零阶优化&#xff1f; 零阶优化&#xff08;Zero-Order Optimization&#xff09;是一种优化方法&#xff0c;用于在没有显式梯度信息的情况下优化目标函数。与常见的梯度下降法不同&#xff0c;零阶优化不依赖于目标函数的梯度&#xff0c;而是通过直接评估目标函数值来…