递归火山软件开发平台

标题: 【API封装】MultiByteToWideChar、WideCharToMultiByte编码转换 [打印本页]

作者: 创世魂    时间: 前天 12:25
标题: 【API封装】MultiByteToWideChar、WideCharToMultiByte编码转换
本帖最后由 创世魂 于 2025-10-30 12:27 编辑

WindowsAPI封装:MultiByteToWideChar、WideCharToMultiByte。
用于编码转换操作。提高转换效率。


提供了:多字节转UTF8、UTF8转多字节、多字节转UTF16、UTF16转多字节、UTF8转UTF16、UTF16转UTF8。
用于直接将目标编码的字节集直接转换成另外一个编码,减少通过文本转换带来的损耗。


经过测试一个21兆的utf16编码的文本文件,转换成utf8编码。在编译发布版本的情况下。


使用传统方法:
文本到UTF8 (字节集到文本 (utf16le))     耗时32毫秒


使用:编码转换类.编码转换          耗时47毫秒


使用:WindowsAPI耗时:       耗时15毫秒


当然根据电脑性能不同,速度肯定还是略有差异,但是也可以看出直接通过Windowsapi转换速度是成倍提升。
对于一些需要进行大文件文本处理的,运行速度会显著提升。
通常文件编码都是utf8格式的,这样可以通过  UTF8转UTF16  转成utf16后在用火山处理,速度会显著提升。




(, 下载次数: 0)



















作者: niuyanbo2021    时间: 前天 12:40
感谢分享!
作者: niuyanbo2021    时间: 前天 12:42
(, 下载次数: 1)

作者: 创世魂    时间: 前天 13:09
niuyanbo2021 发表于 2025-10-30 12:42

flash的问题,手动复制一下吧。
作者: 秋天的童话    时间: 前天 13:27
这个支持一下
作者: shuimiao    时间: 前天 13:44
本帖最后由 shuimiao 于 2025-10-30 13:47 编辑

我的电脑(i914代)复制观察网首页源码的字节集测试,1000次循环,提升几倍(调试版)。谢谢魂总
作者: 小虾米006    时间: 前天 16:32
学习一下!
作者: Xelloss0618    时间: 前天 16:40
本帖最后由 Xelloss0618 于 2025-10-30 16:41 编辑

其实文本到UTF8也是调用这个API,不过会多了一个从CU8String转换到字节集类产生的内存复制。
要更快可以用simdutf
作者: yifan09    时间: 前天 16:47
学习了
作者: 就这    时间: 前天 17:29
看下吧..........
作者: huayanzhen    时间: 前天 19:19
支持
作者: 7325701    时间: 前天 19:46

感谢分享!
作者: lzj    时间: 前天 21:10
感谢分享
作者: zlk    时间: 前天 23:11
感谢分享!感谢分享!
作者: rinipp    时间: 前天 23:35
卡看
作者: ku2017    时间: 昨天 00:10
看看是什么
作者: guangye1    时间: 昨天 06:59
我看看怎么个事
作者: arlonshen    时间: 昨天 10:06
能用得到

作者: alanwoo    时间: 昨天 10:16
感谢分享!
作者: 高山!&流水    时间: 昨天 10:50
学习一下
作者: lusu896886    时间: 昨天 10:59
支持!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 美味萝卜    时间: 昨天 10:59

感谢分享!
作者: 创世魂    时间: 昨天 11:31
Xelloss0618 发表于 2025-10-30 16:40
其实文本到UTF8也是调用这个API,不过会多了一个从CU8String转换到字节集类产生的内存复制。
要更快可以用s ...

那就不知道了。。没研究过。这是我直接找AI问的。。
作者: 创世魂    时间: 昨天 11:34
Xelloss0618 发表于 2025-10-30 16:40
其实文本到UTF8也是调用这个API,不过会多了一个从CU8String转换到字节集类产生的内存复制。
要更快可以用s ...

simdutf 是个第三方库吧。。大佬有空来封一下啊。。
作者: Xelloss0618    时间: 昨天 11:40
创世魂 发表于 2025-10-31 11:34
simdutf 是个第三方库吧。。大佬有空来封一下啊。。

早就封装过,PIV和仰望模块里有
作者: Xelloss0618    时间: 昨天 12:15
创世魂 发表于 2025-10-31 11:31
那就不知道了。。没研究过。这是我直接找AI问的。。

早期火山的UTF8转换是吴总自己写的,但你应该记得,早期火山有不能显示EMOJI表情的BUG,就是因为这个转换代码不完善导致的,后面就全部改用系统API了。
作者: nurjay    时间: 昨天 15:15
学习学习在学习
作者: 67564226    时间: 昨天 15:28

作者: John    时间: 昨天 15:54
谢谢

作者: wsnd1478    时间: 昨天 16:39
学习一下看看
作者: 888888    时间: 昨天 21:41
谢谢分享
作者: 刘铁    时间: 昨天 22:19
感谢分享
作者: 937534233    时间: 昨天 23:05

作者: 紫苏    时间: 昨天 23:39

作者: q130827    时间: 1 小时前
但是也可以看出直接通过Windowsapi转换速度是成倍提升




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4