精易论坛

标题: [宇宙最强]编码转换/解决易语言不能显示字符(包括emoji) [打印本页]

作者: L1yp    时间: 2018-10-26 23:36
标题: [宇宙最强]编码转换/解决易语言不能显示字符(包括emoji)
本帖最后由 L1yp 于 2018-10-27 22:51 编辑

前言:
         想必大家不少人都遇到过emoji表情在易语言显示成??的问题,那么就来看看怎么解决这个问题!
         本源码实现了将易语言不能显示的字符转换成USC2编码,这样您可以输出到编辑框\列表框\存到数据库等等.


技术顾问:  

例如:
         这段hex数据:F0 9F 98 B1 E5 93 88 E5 93 88 F0 9F 98 B1 F0 9F 98 B1(UTF8编码)
         它的原始文本是:
         使用UTF8ToAnsi()会得到"??哈哈????"
         使用UTF8ToUSC2()就可以得到"\uD83D\uDE31哈哈\uD83D\uDE31\uD83D\uDE31"
         使用USC2ToUTF8()还原"\uD83D\uDE31哈哈\uD83D\uDE31\uD83D\uDE31"就会得到"F0 9F 98 B1 E5 93 88 E5 93 88 F0 9F 98 B1 F0 9F 98 B1"


         实现的关键点:
         https://baike.baidu.com/item/Unicode/750500?fr=aladdinUTF-16部分.UTF-16一个码元是2个字节意味着总的范围是0000-FFFF,但是D800-DFFF是空白区域,也就是这个区域没有对应字符,这个区间被用来当做代理平面(也就是第一个码元是在这个区间的,就会有两个码元,也就是4字节),所以可以通过第一个码元的大小来判断到底是2字节还是4字节,如果4字节直接当做不能显示处理.一个码元也有不能显示,当UnicodeToAnsi()返回空的就是不能显示(如果你有gbk的utf16范围那就不用这么麻烦了,知道的欢迎加群讨论:547525064)

         这个源码只针对源数据是UTF8编码的数据,(因为在Protobuf中一般都是utf8),我的另一篇Protobuf一键生成代码的地址:https://125.confly.eu.org/forum.php?mod=viewthread&tid=14247304&extra=


       编码.e (32.18 KB, 下载次数: 1783)
统一把GB18030改成GB2312  不然判断不准确







补充内容 (2018-10-29 09:42):
utf8Tousc2()函数中,utf8Toutf16 转换可能返回空,如果返回空 直接返回空文本
作者: 流星暴雨    时间: 2018-10-26 23:38
沙发是我的了
作者: 沫茗    时间: 2018-10-27 06:41
感谢分享,论坛有你更精彩
作者: xgwh2860    时间: 2018-10-27 07:38
谢谢分享
作者: xgwh2860    时间: 2018-10-27 07:41
谢谢分享
作者: kmskik    时间: 2018-10-27 10:04
感谢分享。
作者: zlw310282    时间: 2018-10-27 13:12
输出到编辑框可以显示出表情吗?
作者: 胜屿    时间: 2018-10-27 17:57
好看,

作者: 轻风影    时间: 2018-10-28 22:26
这个可以有
作者: aaaajjjj    时间: 2018-10-30 07:58
感谢分享。{:3_48:}
作者: 捷斯劫    时间: 2018-10-30 20:32
《数组》值得学习
作者: 1037551719    时间: 2018-11-3 19:38
感谢分享,论坛有你更精彩
作者: 老头怎么还册    时间: 2018-11-15 08:53

作者: 120853530    时间: 2018-11-22 16:45
#在这里快速回复#能返回空,如果返回空 直接返回空文本
作者: a860831472    时间: 2018-11-28 21:59
支持开源~!感谢分享
作者: 暗夜星辰sky    时间: 2018-12-14 09:00
多谢了!!!!
作者: jhaa888888    时间: 2018-12-23 11:51
正好需要,下载学习一下,谢谢
作者: 1069523953    时间: 2018-12-31 15:33
#在这里快速回复#支持开源~!感谢分享
作者: film21    时间: 2019-1-4 03:06
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
作者: caojun77    时间: 2019-1-9 22:16
休息休息休息
作者: oyxx134    时间: 2019-1-11 03:44
取网页得到字节集该怎么转换??我有点晕~~~~~~讲一下谢谢
作者: L1yp    时间: 2019-1-11 21:04
oyxx134 发表于 2019-1-11 03:44
取网页得到字节集该怎么转换??我有点晕~~~~~~讲一下谢谢

具体点 网页字节集是UTF8编码吗 如果是直接 UTF8ToUsc2
作者: oyxx134    时间: 2019-1-14 11:44
L1yp 发表于 2019-1-11 21:04
具体点 网页字节集是UTF8编码吗 如果是直接 UTF8ToUsc2

是的。这个我自知道。我想知道如何编码把emoji表情发送出去。老是乱码。wx的
作者: L1yp    时间: 2019-1-15 16:00
oyxx134 发表于 2019-1-14 11:44
是的。这个我自知道。我想知道如何编码把emoji表情发送出去。老是乱码。wx的

你加群fa数据给我
作者: z1052511080    时间: 2019-3-29 20:54
楼主真棒顶一个
作者: xushuyi    时间: 2019-4-9 11:54
怎么转换emoji显示
作者: L1yp    时间: 2019-4-9 14:18
xushuyi 发表于 2019-4-9 11:54
怎么转换emoji显示

转unicode就行
作者: blanks    时间: 2019-4-16 14:55
支持开源~!感谢分享
作者: Not_alone    时间: 2019-4-29 18:30
楼主 这个可以实现emoji表情直接存储到mysql数据库吗
作者: 毛超    时间: 2019-5-1 15:52
感谢分享!!!!!!!!!
作者: jhaa888888    时间: 2019-6-4 09:55
顶,下载学习一下,谢谢
作者: love886    时间: 2019-6-5 03:34
231111132222222222
作者: neysummer    时间: 2019-6-17 16:21

顶,下载学习一下,谢谢
作者: 网络注册会员    时间: 2019-7-20 17:01
下来试一下
作者: 毛超    时间: 2019-8-29 15:25
感谢分享!!!!!!!!!
作者: 花满楼2018    时间: 2019-9-16 16:04
感谢分享!!!!!!!!!
作者: qq1007524531    时间: 2019-9-21 09:48
22222222222222
作者: qq1007524531    时间: 2019-9-21 09:49
333333333333332222222222
作者: wnzhwqy    时间: 2019-11-20 21:45
666666666666666666666
作者: 1689478353    时间: 2019-11-24 18:18
非常好,感谢
作者: squallx    时间: 2020-4-8 22:32
这个这么用啊
作者: darkccc    时间: 2020-4-9 07:43
支持  谢谢分享
作者: LYForever    时间: 2020-4-11 08:02
支持开源~!感谢分享

作者: wzy6896    时间: 2020-4-19 20:45
试试看哈哈哈
作者: hnxcxyh    时间: 2020-4-29 17:52
emj表情的确在易里面是乱码?这样的。如果可以转换就很好了
作者: coolfire1983    时间: 2020-4-29 17:57
谢谢楼主分享!
作者: mollid    时间: 2020-4-30 11:51
谢谢楼主分享!
作者: lyliu    时间: 2020-7-2 17:20
支持库编码转换怎么转换不对呀。
作者: 已注销622479    时间: 2020-7-17 16:59
支持
作者: 怡君大哥    时间: 2020-9-17 00:50
        支持开源~!感谢分享
作者: 希纱    时间: 2020-9-17 00:51
支持 , 着实有用
作者: KingPrime    时间: 2020-12-5 00:58
附件好像不能下载了
作者: jacksonwen    时间: 2021-1-31 01:13
来学下怎么擦亮在的
作者: 寡人i    时间: 2021-3-2 12:32
路过围观一下,顺便帮顶
作者: hjdnwx    时间: 2021-3-3 13:17
6666666666666666666
作者: hjdnwx    时间: 2021-3-27 11:09
6666666666666666666
作者: hjdnwx    时间: 2021-3-27 11:14
66666666666666
作者: hjdnwx    时间: 2021-3-27 11:14
666666666666
作者: mjhwzwg6    时间: 2021-3-31 17:23

作者: mjhwzwg6    时间: 2021-3-31 17:24
很不错 支持大神大佬
作者: 晚放    时间: 2021-5-2 09:54
看能否解决我的问题
作者: 陈小之    时间: 2021-5-11 02:40
看能否解决我的问题
作者: 米源源源    时间: 2021-5-18 22:42
谢谢大佬来学习
作者: w9578    时间: 2021-6-27 13:15
看能否解决我的问题
作者: 562159129    时间: 2021-7-26 17:39
正好需要,下载看看
作者: 1327067592    时间: 2021-9-6 13:26
为啥我手动在编辑框里面能输入表情。但是代码往里面插入文本就是乱码呢??求大佬
作者: findqgzs    时间: 2021-9-7 23:31
666666666666666666666666666666666666666666666666666
作者: 易游轩    时间: 2021-9-12 19:07
阿萨德撒大小
作者: 易游轩    时间: 2021-9-12 19:07

作者: xuangeylw    时间: 2021-10-28 20:38
学到了!!!!!
作者: gameboy68    时间: 2022-1-14 16:59
支持开源
作者: 拿个AK炒菜    时间: 2022-1-23 16:19
是挺牛的,就是看不懂
作者: saina6282    时间: 2022-1-25 14:46
感谢分享,很给力!~
作者: 三千越甲123    时间: 2022-1-26 15:04
下载试一下看看哈
作者: china98881    时间: 2022-3-13 17:07
不知道能不能用上,先收藏一下,感谢大大
作者: 摸鱼鸽子    时间: 2022-9-1 15:56
给大佬递茶
作者: jiuwei    时间: 2022-11-29 13:44
66666666666666
作者: 毁灭企鹅    时间: 2022-12-25 20:25
正好找这个,感谢
作者: 我要当全栈    时间: 2023-1-10 00:13
感谢分享,很给力!~
作者: rtx2080    时间: 2023-1-17 02:54
666666666666666666666
作者: 172721404    时间: 2023-2-6 23:45
牛逼啊 高手
作者: 小子轩    时间: 2023-4-10 22:48
是挺牛的,就是看不懂
作者: 程咬金    时间: 2023-4-10 22:52
是挺牛的,就是看不懂
作者: RyanWong    时间: 2023-5-30 18:45
大佬你好,我用了你的编码子程序来保留Emoji(将含有emoji的字节集数据用 Utf8ToUsc编码),但是批量处理文本的时候,会出现软件闪退的情况,断点调试发现是最后一步 写到内存 ({ 0 }, ptr + pos, ) 这句代码执行完之后软件就闪退了。。请问有解决方法吗
作者: lyt2598    时间: 2023-6-3 21:39
正好需要这个东西 ,学习一下
作者: k18556    时间: 2023-6-7 18:03
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
作者: 摸鱼鸽子    时间: 2023-7-4 10:22
666666666666666666
作者: 希纱    时间: 2023-7-19 22:45
啊 , 我还以为支持显示到界面上了呢
作者: 4662001    时间: 2023-7-20 21:59
希纱 发表于 2023-7-19 22:45
啊 , 我还以为支持显示到界面上了呢

早就支持了
作者: martinxm    时间: 2023-8-25 23:04

是挺牛的,就是看不懂
作者: yxzhu    时间: 2023-9-8 16:50
6666666666666666666666666666666
作者: xtqsq    时间: 2023-11-22 17:25
支持开源~!感谢分享
作者: 515667395    时间: 2023-11-28 15:11
多谢分享
作者: aa583    时间: 2023-12-15 21:49
支持开源~!感谢分享
作者: camel0170    时间: 2024-1-1 15:17
666666666666666666666666666666666666666
作者: yjp888    时间: 2024-2-28 15:29
111111111113
作者: wxm19860507    时间: 2024-4-27 13:39
优秀的似的是的
作者: wxm19860507    时间: 2024-4-27 13:42
很好
作者: 一曲长歌入冬流    时间: 2024-5-8 15:31
支持开源~!感谢分享
作者: 张而不狂    时间: 2024-5-9 22:10
这个很好,可以用到




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