精易论坛

标题: USC2编码USC2解码 纯api实现 纯源码 支持中英 [打印本页]

作者: 斗战胜猴    时间: 2025-5-31 09:53
标题: USC2编码USC2解码 纯api实现 纯源码 支持中英
端午安康
纯api实现 纯源码  支持中英
USC2编码 USC2解码 USC2编码W USC2解码W

截图32位20250531094511.png (50.68 KB, 下载次数: 8)

截图32位20250531094511.png

USC2编码解码.e

18.01 KB, 下载次数: 32, 下载积分: 精币 -2 枚


作者: hezeyu    时间: 2025-5-31 10:17
感谢分享!!!!!
作者: 小虎来了    时间: 2025-5-31 10:52
感谢分享
作者: xh1020    时间: 2025-5-31 10:55
感谢分享
作者: angelaleeahngi    时间: 2025-5-31 11:03
感谢分享
作者: wjswzj0    时间: 2025-5-31 11:51
感谢分享
作者: 杨明煜    时间: 2025-5-31 12:23
支持一下,谢谢!......
作者: qqmqqg    时间: 2025-5-31 12:48
6666666666666666
作者: dikexu    时间: 2025-5-31 20:23
66666666666666666666666666
作者: 亿万    时间: 2025-5-31 21:37
感谢分享
作者: 豆豆灰常开心    时间: 2025-6-1 07:10
感谢分享,很给力!~
作者: 查过    时间: 2025-6-1 07:14
全都是大佬~
作者: year1970    时间: 2025-6-1 07:53
感谢分享
作者: wgqxj    时间: 2025-6-1 10:53
谢谢分享
作者: 383586982    时间: 2025-6-1 12:05
API没用。没网络还不行呢?
作者: 一指温柔    时间: 2025-6-1 14:00
感谢分享,很给力!~
作者: 渁煑渔    时间: 2025-6-1 16:49
\uf087\uf088\uf088\uf088\uf088\uf088
帮忙 看下 这个不能正常转换,有办法吗



是这种箭头
作者: 斗战胜猴    时间: 2025-6-1 17:15
渁煑渔 发表于 2025-6-1 16:49
%uf087%uf088%uf088%uf088%uf088%uf088
帮忙 看下 这个不能正常转换,有办法吗

调试输出 (编码_ANSI到UCS2 (“>”))
调试输出 (编码_UCS2到ANSI (“\uf03e”))

调试输出 (USC2编码 (“>”))
调试输出 (USC2解码 (“\uf03e”))

开始运行被调试程序
* “\uf03e”
* “>”
* “\uf03e”
* “>”
被调试易程序运行完毕

截图32位20250601051432.png (16.9 KB, 下载次数: 1)

截图32位20250601051432.png

作者: 渁煑渔    时间: 2025-6-1 17:20
斗战胜猴 发表于 2025-6-1 17:15
调试输出 (编码_ANSI到UCS2 (“>”))
调试输出 (编码_UCS2到ANSI (“%uf03e”))

我提供是特殊符号,看ucs码是不一样的
作者: 斗战胜猴    时间: 2025-6-1 18:16
渁煑渔 发表于 2025-6-1 17:20
我提供是特殊符号,看ucs码是不一样的

收到了,那个240替换存在bug
作者: 斗战胜猴    时间: 2025-6-1 20:48
  
子程序名返回值类型公开备 注
USC2编码文本型 将文本转换成 \uxxxx 格式
参数名类 型参考可空数组备 注
string文本型
变量名类 型静态数组备 注
wstr字节集 
buff文本型 
pBuff整数型 
len整数型 
i整数型 
wstr = 编码_Ansi到Unicode (string)
len = lstrlenW_字节集 (wstr)
buff = 取空白文本 (len × 6)
pBuff = PtrStr (buff)
变量循环首 (0, len - 1, 1, i)
wsprintfA (pBuff + i × 6, “\u%.2x%.2x”, wstr [i × 2 + 2], wstr [i × 2 + 1])
变量循环尾 ()
返回 (buff)
子程序名返回值类型公开备 注
USC2编码W字节集 将文本转换成 \uxxxx 格式
参数名类 型参考可空数组备 注
string字节集编码_Ansi到Unicode
变量名类 型静态数组备 注
buff字节集 
pBuff整数型 
len整数型 
i整数型 
format字节集 
len = lstrlenW_字节集 (string)
buff = 取空白字节集 (len × 2 × 6 + 2)
pBuff = PtrBin (buff)
format = { 92, 0, 117, 0, 37, 0, 46, 0, 50, 0, 120, 0, 37, 0, 46, 0, 50, 0, 120, 0, 0, 0 }  ' \u%.2x%.2x
变量循环首 (0, len - 1, 1, i)
wsprintfW (pBuff + i × 12, format, string [i × 2 + 2], string [i × 2 + 1])
变量循环尾 ()
返回 (buff)
子程序名返回值类型公开备 注
USC2解码文本型 将 \uxxxx 文本解码
参数名类 型参考可空数组备 注
usc2Str文本型
变量名类 型静态数组备 注
pos整数型 
Ox字节集 
buffer字节集 
pBuff整数型 
char1整数型 
char2整数型 
ret字节集 
pRet整数型 
Len整数型 
位置整数型 
ret = 编码_Ansi到Unicode (usc2Str)
pRet = PtrBin (ret)
pos = StrStrW_bin2 (pRet, { 92, 0, 0, 0 })  ' \u
如果真 (pos = 0)
返回 (usc2Str)

buffer = 取空白字节集 (10)
pBuff = PtrBin (buffer)
Ox = { 48, 0, 120, 0 }  ' 0x
RtlMoveMemory_整数型 (pBuff, PtrBin (Ox), 4)
Len = lstrlenW (pRet) × 2
判断循环首 (pos ≠ 0)
RtlMoveMemory_整数型 (pBuff + 4, pos + 8, 4)
StrToIntEx_ptr (pBuff, 1, char1)
RtlMoveMemory_整数型 (pBuff + 4, pos + 4, 4)
StrToIntEx_ptr (pBuff, 1, char2)
如果 (char1 = 0 char2 = 0)
RtlMoveMemory_整数型 (pos, pos + 12, pRet + Len - pos - 12)
RtlZeroMemory (pRet + Len - 12, 12)
Len = Len - 12
pos = pos - 2
RtlMoveMemory_整数型 (pos, PtrInt (char1), 1)
RtlMoveMemory_整数型 (pos + 1, PtrInt (char2), 1)
RtlMoveMemory_整数型 (pos + 2, pos + 12, pRet + Len - pos - 12)
RtlZeroMemory (pRet + Len - 12 + 2, 12 - 2)
Len = Len - 10

pos = StrStrW_bin2 (pos + 2, { 92, 0, 0, 0 })  ' \
判断循环尾 ()
返回 (编码_Unicode到Ansi (ret))
子程序名返回值类型公开备 注
USC2解码W字节集 将 \uxxxx 文本解码
参数名类 型参考可空数组备 注
usc2Str字节集编码_Ansi到Unicode
变量名类 型静态数组备 注
pos整数型 
Ox字节集 
buffer字节集 
pBuff整数型 
char1整数型 
char2整数型 
ret字节集 
pRet整数型 
Len整数型 
位置整数型 
ret = usc2Str
pRet = PtrBin (ret)
pos = StrStrW_bin2 (pRet, { 92, 0, 0, 0 })  ' \u
如果真 (pos = 0)
返回 (usc2Str)
buffer = 取空白字节集 (10)
pBuff = PtrBin (buffer)
Ox = { 48, 0, 120, 0 }  ' 0x
RtlMoveMemory_整数型 (pBuff, PtrBin (Ox), 4)
Len = lstrlenW (pRet) × 2
判断循环首 (pos ≠ 0)
RtlMoveMemory_整数型 (pBuff + 4, pos + 8, 4)
StrToIntEx_ptr (pBuff, 1, char1)
RtlMoveMemory_整数型 (pBuff + 4, pos + 4, 4)
StrToIntEx_ptr (pBuff, 1, char2)
如果 (char1 = 0 char2 = 0)
RtlMoveMemory_整数型 (pos, pos + 12, pRet + Len - pos - 12)
RtlZeroMemory (pRet + Len - 12, 12)
Len = Len - 12
pos = pos - 2
RtlMoveMemory_整数型 (pos, PtrInt (char1), 1)
RtlMoveMemory_整数型 (pos + 1, PtrInt (char2), 1)
RtlMoveMemory_整数型 (pos + 2, pos + 12, pRet + Len - pos - 12)
RtlZeroMemory (pRet + Len - 12 + 2, 12 - 2)
Len = Len - 10

pos = StrStrW_bin2 (pos + 2, { 92, 0, 0, 0 })  ' \
判断循环尾 ()
返回 (ret)


作者: renhe2018    时间: 2025-6-1 21:57
前来支持 一下
作者: bianyuan456    时间: 2025-6-2 00:55
已经顶贴,感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2025-6-2 07:10
感谢您对论坛的支持!
作者: 查过    时间: 2025-6-2 07:15
全都是大佬~
作者: kyo9766    时间: 2025-6-2 09:57
学习一下 编码 和 解码,感谢分享
作者: 豆豆灰常开心    时间: 2025-6-3 07:13
已经顶贴,感谢您对论坛的支持!
作者: 查过    时间: 2025-6-3 07:17
感谢发布原创作品,精易因你更精彩!6666666666666
作者: please    时间: 2025-6-3 09:37
感谢分享,支持开源!!!
作者: ogion    时间: 2025-6-6 22:11
支持一下。
作者: 胖子葛格    时间: 2025-6-12 18:13
感谢大神分享~!
作者: 爱你在梦里    时间: 2025-6-26 21:04
下载学习学习




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4