本帖最后由 wlp 于 2024-5-8 08:15 编辑
窗口程序集名 保 留 保 留 备 注 窗口程序集_启动窗口
调试输出 ( _UTF8文本_编码 ( “哈哈 \u0001\u0002” ) )
调试输出 ( _UTF8文本_解码 ( _UTF8文本_编码 ( “哈哈 \u0001\u0002” ) )
) _UTF8文本_解码 文本型 UTF8文本 字节集 符号 文本型
变量名 类 型 静态 数组 备 注 u 字节集 n 整数型 k 整数型 transform 逻辑型 unicode_result 字节集 s 文本型 temp 字节集
如果真 ( 是否为空 ( 符号
) )
符号 =
“\u” unicode_result = { } u =
编码_Utf8到Unicode ( UTF8文本
) 如果真 ( 取字节集右边 ( u, 2
) =
{ 0, 0
} ) u =
取字节集左边 ( u,
取字节集长度 ( u
) - 2
) 变量循环首 ( 1,
取字节集长度 ( u
) , 2, n
) k = u
[ n
] +
左移 ( u
[ n + 1
] , 8
) transform = 真
如果真 ( k ≤ 159
且 取反 ( k ≥ 0
且 k ≤ 31
或 k ≥ 127
且 k ≤ 159
) )
transform = 假
如果真 ( k ≥ 13312
且 k ≤ 19893
或 k ≥ 19968
且 k ≤ 40869
或 k ≥ 63744
且 k ≤ 64045
) transform = 假
判断 ( transform =
假 ) unicode_result = unicode_result +
取字节集中间 ( u, n, 2
) s = 符号
s = s +
__Byte_To_Hex ( u
[ n + 1
] ) s = s +
__Byte_To_Hex ( u
[ n
] ) temp =
编码_Utf8到Unicode ( 到字节集 ( 到小写 ( s
) )
) 如果真 ( 取字节集右边 ( temp, 2
) =
{ 0, 0
} ) temp =
取字节集左边 ( temp,
取字节集长度 ( temp
) - 2
) unicode_result = unicode_result + temp 变量循环尾 ( ) 返回 ( 编码_Unicode到Ansi ( unicode_result
) )
变量名 类 型 静态 数组 备 注 u 字节集 n 整数型 k 整数型 transform 逻辑型 s 字节集 temp 字节集 v 整数型 j 整数型 seq 文本型 new 字节集 utf8 字节集
如果真 ( 是否为空 ( 符号
) )
符号 =
“\u” u = 编码_Ansi到Unicode ( 文本) 如果真 ( 取字节集右边 ( u, 2
) =
{ 0, 0
} ) u =
取字节集左边 ( u,
取字节集长度 ( u
) - 2
) s = 编码_Ansi到Unicode ( 符号) 如果真 ( 取字节集右边 ( s, 2
) =
{ 0, 0
} ) s =
取字节集左边 ( s,
取字节集长度 ( s
) - 2
) n = 0 判断循环首 ( 真 ) n =
寻找字节集 ( u, s, n
) 如果真 ( n = -1
) 跳出循环 ( ) k = n + 取字节集长度 ( s) transform = 假
seq =
“” 变量循环首 ( k, k + 8 - 1, 2, j
) v = u
[ j
] +
左移 ( u
[ j + 1
] , 8
) 如果真 ( 取反 ( v ≥ 97
且 v ≤ 102
或 v ≥ 65
且 v ≤ 70
或 v ≥ 48
且 v ≤ 57
) )
跳出循环 ( ) transform = 真 seq = seq +
字符 ( v
) 变量循环尾 ( ) 如果真 ( 取文本长度 ( seq
) ≠ 4
) transform = 假
判断 ( transform
) new =
到字节集 ( __Byte_From_Hex ( 取文本右边 ( seq, 2
) )
) +
到字节集 ( __Byte_From_Hex ( 取文本左边 ( seq, 2
) )
) u =
字节集替换 ( u, n,
取字节集长度 ( s
) + 8, new
) n = 0
n = k
判断循环尾 ( ) utf8 =
编码_Unicode到Utf8 ( u
) 如果真 ( 取字节集右边 ( utf8, 1
) =
{ 0
} ) utf8 =
取字节集左边 ( utf8,
取字节集长度 ( utf8
) - 1
) 返回 ( utf8) 变量名 类 型 静态 数组 备 注 hi 整数型 lo 整数型 s 文本型
s =
“0123456789abcdef” hi = Byte ÷ 16 + 1
lo = Byte % 16 + 1
返回 ( 取文本中间 ( s, hi, 1
) +
取文本中间 ( s, lo, 1
) )
__Byte_From_Hex 字节型 ByteHex 文本型
变量名 类 型 静态 数组 备 注 hi 整数型 lo 整数型 s 文本型
s =
“0123456789abcdef” hi =
寻找文本 ( s,
取文本左边 ( 到小写 ( ByteHex
) , 1
) , ,
假 ) - 1
lo =
寻找文本 ( s,
取文本右边 ( 到小写 ( ByteHex
) , 1
) , ,
假 ) - 1
返回 ( 左移 ( hi, 4
) + lo
)
注意:返回的是字节集数据是utf-8, 不是unicode
\uaabb 对应 Unicode字节集 {bb, aa}
下面这个代码用于转换不支持的字符,或者用 `https://www.jyshare.com/front-end/3602/`里面的`中文转Unicode`
```javascript
[i]function ToUnicode(text) {
[i] var arr = []
[i] for(var i=0; i
[i] var c = text.charCodeAt(i);
[i] var lo = (c & 255).toString(16).padStart(2,'0');
[i] var hi = (c >> 8).toString(16).padStart(2,'0');
[i] arr.push("\u" + hi + lo);
[i] }
[i] return arr.join('');
[i]}
[i]console.log(ToUnicode('요요哈哈'));
[i]```