|
发表于 2025-5-11 17:22:21
|
显示全部楼层
浙江省温州市
上面的代码直接转换会有一些,比如本来就是ansi编码的话,会返回错误,或者遇到Uincode编码的文本就又不行了。
所以我又参考了下面这个帖子中的代码:
https://bbs.125.la/forum.php?mod=viewthread&tid=14509157
写了一个例子:
变量名 | 类 型 | 静态 | 数组 | 备 注 | 字节集编码 | 字节集 | | | 起始位置 | 整数型 | | | i | 整数型 | | | n | 整数型 | | | 字节集操作 | 快速字节集对象 | | | 编码_转换后 | 文本型 | | |
起始位置 = 0 字节集操作. 置字节集 (文本 ) 判断循环首 (字节集操作. 寻找字节集 ({ 63 }, 起始位置 + 1 ) ≠ -1 ) 起始位置 = 字节集操作. 寻找字节集 ({ 63 }, 起始位置 + 1 ) 如果真 (起始位置 ≠ -1 )  i = i + 1   判断循环尾 () 判断 (字节集操作. 取字节集 (1, 3 ) = { 239, 187, 191 }) 字节集操作. 删除字节 (1, 3 ) 判断 (字节集操作. 取字节集 (1, 2 ) = { 254, 255 }) 字节集操作. 删除字节 (1, 2 ) 返回 (到文本 (编码转换 (字节集操作. 取字节集 (, ), #编码_UTF_16BE, #编码_GB18030, )) ) 判断 (字节集操作. 取字节集 (1, 2 ) = { 255, 254 }) 字节集操作. 删除字节 (1, 2 ) 返回 (编码_Unicode到Ansi (字节集操作. 取字节集 (, )) ) 编码_转换后 = 编码_Utf8到Ansi (字节集操作.取字节集 (, ))调试输出 (编码_转换后 )字节集操作. 清除字节集 ()字节集操作. 添加 (到字节集 (编码_转换后 )) 起始位置 = 0 判断循环首 (字节集操作. 寻找字节集 ({ 63 }, 起始位置 + 1 ) ≠ -1 ) 起始位置 = 字节集操作. 寻找字节集 ({ 63 }, 起始位置 + 1 ) 如果真 (起始位置 ≠ -1 )  n = n + 1   判断循环尾 () 判断 (i < n ) 返回 (到文本 (文本 )) 判断 (i = n ) 返回 (到文本 (编码_转换后 ))  返回 (“”)变量名 | 类 型 | 静态 | 数组 | 备 注 | 文件内容 | 文本型 | | | 行内容数组 | 文本型 | | 0 | 插入的表项索引 | 整数型 | | | 每行内容 | 文本型 | | 0 | 计次 | 整数型 | | |
通用对话框1. 打开 () 如果真 (通用对话框1.文件名 = “”) 提示框 (“请选择需要打开的文件”) 返回 ()文件内容 = 多类型编码转Ansi (读入文件 (通用对话框1.文件名))行内容数组 = 分割文本 (文件内容, #换行符, ) 计次循环首 (取数组成员数 (行内容数组 ), 计次 ) 每行内容 = 分割文本 (行内容数组 [计次 ], “,”, 2 ) 调试输出 (每行内容 ) 如果真 (取数组成员数 (每行内容 ) < 2 ) 到循环尾 () 插入的表项索引 = 超级列表框1.插入表项 (, , , , , ) 超级列表框1. 置标题 (插入的表项索引, 0, 每行内容 [1 ]) 超级列表框1. 置标题 (插入的表项索引, 1, 每行内容 [2 ]) 计次循环尾 ()
试了一下,可以支持常见的编码:
TXT文本.zip
(1.04 KB, 下载次数: 3)
|
|