|
发表于 2020-9-30 22:06:34
|
显示全部楼层
浙江省嘉兴市
本帖最后由 最恨VC 于 2020-9-30 22:09 编辑
模块版本:精易模块8.4
所用系统:win10
命令名称:编码_Utf8到Unicode
BUG描述:对一个UTF8的Json文件进行转换到Unicode后,使用zyjson模块对其进行解析将产生数组超出下标奔溃问题。解决方法是把模块降到了7.3后解决了
我的联系QQ:104438
对比模块源码,确实有差别,下面是按照7.3模块的方法修改过后的
.版本 2
.子程序 编码_Utf8到Unicode, 字节集, 公开, 将UTF8数据转换到Unicode
.参数 utf8字节集, 字节集
.局部变量 局_长度, 整数型
.局部变量 局_地址, 整数型
.局部变量 局_地址长度, 整数型
.局部变量 局_指针, 整数型
.局部变量 局_字符长, 整数型
.局部变量 局_Unicode, 字节集
局_长度 = 取字节集长度 (utf8字节集)
局_地址 = 取指针字节集_ (utf8字节集)
局_地址长度 = lstrlenA (局_地址)
.如果真 (0 ≤ 局_地址长度 且 局_地址长度 ≤ 局_长度)
局_长度 = 局_地址长度
.如果真结束
局_指针 = A2W_指针 (局_地址, 局_长度, 65001, 局_字符长)
局_Unicode = 取空白字节集 (局_字符长 × 2 + 2)
RtlMoveMemory (取指针字节集_ (局_Unicode), 局_指针, 局_字符长 × 2)
HeapFree (GetProcessHeap (), 0, 局_指针)
返回 (局_Unicode)
|
|