书香雅阁论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 610|回复: 0

【编码转换深入解读】

[复制链接]

451

主题

474

帖子

158万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1581710
发表于 2024-3-7 06:26:59|字数:947 | 显示全部楼层 |阅读模式
LV10 站长

本节来总结一下,前面学习中相关问题难点

本节实际上就是对【文本与多字节】 的进一步探讨


相信大家可能有一个疑问,为什么火山的编码类型没有文本和文本之间的之间转换
  
编码_gb2312到utf8 ()
编码_utf8到gb2312 ()

比如上面易语言中精易模块的这2句命令,简单明了,
像火山就复杂多了:
多字节到文本 ( ) 提供的参数是字节集,返回的是文本
文本到多字节 ( ) 提供的参数是文本,返回的是字节集


这么复杂的目的到底是什么,这可能是很多火山编程爱好者想不明白的一个事

——————————————————————————————————————————————————


产生这种误区的原因是来源于GBK与UTF-8之间的编码转换,确实,在易语言中,我们可以将其在文本层面进行转换,但是这仅仅只在GBK和UTF-8两种编码中起到效果

实际上,从来就是不允许在文本层次进行编码转换的,比如我用易语言文本变量去接收一个UTF-16的文本,这个时候可能就会产生一堆的???,然后出现数据丢失的情况

也就是说,我们应该要在字节集的层面上进行转换


大家可能会有疑问,万一我返回的不是字节集是文本

图片.png

图片.png

放心吧,大家想的到的操作返回的都是字节集,没有文本的

如果要读入GBK数据,我们就用多字节到文本 ( )
如果要读入UTF-8数据,我们就用精易模块的编码_Utf8到Unicode ()
图片.png

对于写出数据是一样的处理方法

————————————————————————————————————————————
重点:
当然大家如果觉得实在不习惯,我这边使用易语言的语法为大家提供一个解决办法

标准写法:
165638ctf3s0nweu030c2z.png

易语言写法:
图片.png

[voldev] 纯文本查看 复制代码
<火山程序 类型 = "通常" 版本 = 1 />

变量 文件路径 <类型 = 文本型>
变量 文本 <类型 = 文本型>
变量 ""
文件路径 = 取特定目录 (特定目录类型.系统桌面) + "123.txt"
文本 = 字节集到文本 (读入文件 (文件路径, ))

文本 = 多字节到文本 (文本到字节集 (文本))
信息框 (文本, , )


(点击返回课程目录https://shuxiangyage.net/forum.php?mod=viewthread&tid=1134



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|书香雅阁论坛 ( 湘ICP备17011672号-3 )

GMT+8, 2024-11-21 17:49 , Processed in 0.091445 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表