前言

这已经是好几年以前的小玩意了,今天闲着无聊翻翻相册,无意看到的,因此写下了这篇。

正文

Unicode编码
先来介绍一下Unicode编码吧

它为了使计算机实现跨语言、跨平台的文本转换及处理而产生的业界标准。

控制字符
控制字符,顾名思义,它是出现于特定的信息文本中,表示某一控制功能的字符。

而关于qq群名片小尾巴生成,主要用到以下两个Unicode控制字符

&# 8237;LRO‭ 开始从左向右覆盖

&# 8238;RLO开始从右向左覆盖

大多数语言都是从左向右读的,不过还真有从右向左读的语言,所以就出现了RLO(Right-to-Left Override),另外RLO在渗透方面也有应用(RLO文件名欺骗)

如果某些网站和谐某些关键字如“xyz”,你可以这样写"RLO字符+zyx",这样效果就是“xyz”。同理,在qq中,小明撤回了一条消息,如果把小明的群昵称改成“RLO字符+小明”,那么就会显示“息消条一了回撤明小”,那么如何做到”小明撤回了一条消息并打了你一下”的效果呢?
我们一步一步分析:

  1. 程序先得到用户的nickname
  2. 再拼接“撤回了一条消息”
  3. 输出顺序是nickname + “撤回了一条消息”

我们把nickname中加入RLO字符和tail(下一你了打并)以及LRO字符

  1. 程序得到nickname
  2. 拼接“撤回了一条消息”
  3. 先输出nickname
    小明/
  4. 到RLO字符时,从右向左输出
  5. 从右向左输出tail
    小明/并打了你一下
    此时最后一次输出后的位置(即’/’)在“小明”与“并打了你一下之间”
  6. 到LRO字符时,从左向右输出
  7. 输出拼接字符
    小明撤回了一条消息/并打了你一下

这样就可以显示小明撤回了一条消息并打了你一下的效果了
代码
原理有了,实践开始

Button btn=(Button)findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){EditText nn=(EditText)findViewById(R.id.name);EditText tl=(EditText)findViewById(R.id.tail);String name=nn.getText().toString();String tail=tl.getText().toString();if (name.length()==0 || tail.length()==0){Toast.makeText(getApplicationContext(),"Please input your nick name and tail!",Toast.LENGTH_LONG).show();return;}String s=name+(char)8238+reverse(tail)+(char)8237;ClipboardManager cm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);ClipData cd=ClipData.newPlainText(null,s);cm.setPrimaryClip(cd);Toast.makeText(getApplicationContext(),"Copied",Toast.LENGTH_LONG).show();}public String reverse(String str){return new StringBuffer(str).reverse().toString();}});

效果:

源码请访问Github:Click me

QQ群名片尾巴生成原理相关推荐

  1. iOS-QQ临时对话、QQ群申请跳转

    QQ 临时对话 NSString *qq = [NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@& ...

  2. qq浏览器打开word 技术原理_实操:QQ群排名技术原理

    想必大家都创建过QQ,但是就是没有排名没人加最后放弃了,不活跃,今天教大家如何弄活一个QQ群,让说话以及加群的人变多. 直奔主题说影响群排名的因素及原理: 第一点:群等级压制 重要程度:★★★★★ Q ...

  3. 获取课程QQ群成员群名片,与选课名单核对

    核对QQ群成员是否在选课名单里,并检查哪些同学选课了但是没进群. 选课名单的格式是excel表格. 我们的目的是,想要知道: (1)哪些群成员不在选课名单里 (2)哪些同学在选课名单却不在QQ群里. ...

  4. 如何在QQ群中使用群名片显示真实姓名?

    在一些QQ群中,大家一般都是互相熟悉的朋友和同学,这个时候再用网名就显得不太合适了.但是我们又不想把自己的QQ昵称改称真实姓名,这时该怎么办呢?         在一些QQ群中,大家一般都是互相熟悉的 ...

  5. 在QQ群和QQ空间中挂马

    有无数人每天都在使用 QQ ,大家往往注重于QQ尾巴病毒.QQ传 木马 之类的攻击方式,却很少有人注意到我们经常访问的QQ群.QQ空间里面隐藏着更大的安全危险,远比QQ尾巴病毒.QQ传木马之类的隐蔽得 ...

  6. python 下载qq群文件_python作业/练习/实战:下载QQ群所有人的头像

    步骤与提示: 1.在腾讯群网页中进入任意一个群,获取相关信息,可以用postman是试一下,可以看到我们要的是mems里面的数据,需要获取到QQ号和群名片,如果没有群名片的话取昵称 2.根据QQ号下载 ...

  7. php 跳转qq群代码_Q群自动签到php+java实现

    2020年9月10日更新:腾讯在9月9日,再次对签到系统进行了大幅度的更新,整个实现思路失效! 本篇文章仅记录实现思路,原文,并不放置源代码,不喜绕道~ 腾讯在8月12日,对QQ群进行了大幅度的更新, ...

  8. 关于QQ群头像以及微信讨论组头像的工具类

    QQ群头像以及微信讨论组头像工具类介绍  介绍: 由于段时间公司项目需求,在翻了网上很多代码后发现,很多人用的是自定义View的办法来实现此类头像的效果,但是,这样一来就必须改变项目中原有的控件,而且 ...

  9. qq动态名片代码_巧用云调用,实现【共享名片夹】小程序

    原创: 锋少 一.前言 从一个较早的小程序开发者到第一批使用小程序·云开发的开发者,这期间一直在关注关于小程序各方面的更新,同时也用小程序·云开发做了几款产品,其中包括上次分享的随手记Lite小程序, ...

最新文章

  1. B题 锅炉水冷壁温度曲线 2021年第一届长三角高校数学建模竞赛
  2. PHP源码分析-数组
  3. tyvj 2002 扑克牌
  4. android 倒计时的控件,以动画的形式平滑的完成数字的过度
  5. Instsrv.exe可以给系统安装和删除服务
  6. 安装Xen Server创建虚拟机
  7. Apache Hadoop HDFS数据节点Apache Mesos框架
  8. 耳目一新的在线答疑服务背后的核心技术
  9. 诺基亚造平板到底前途几何?
  10. Java习题>|异常>|throw自定义异常小案例
  11. hdu1166------树状数组(板子)
  12. python pdf模块_python—pdf模块
  13. 分享收集软件教程的微信小程序
  14. 谓词公式与量词的辖域
  15. html 链接nofollow,ueditor给超链接默认添加rel=nofollow标签
  16. 企业要如何利用360评估法做好人才盘点?
  17. python如何拼读英语单词怎么写_怎么用英标快速拼读英语单词,这些技巧你知道吗...
  18. obs多推流地址_OBS下载、安装、使用(腾讯)推流直播教程
  19. LINUX内核编译选项-5
  20. 图像质量评价的方法和意义

热门文章

  1. Windows安装程序初始化时出错。安装程序将立即关闭。(原)
  2. arch Linux 作妖记录(U盘启动)
  3. Aspose.Words for .NET使用教程(七):将文档转换为EPUB
  4. 201871010123-吴丽丽《面向对象程序设计(Java)》第一周学习总结
  5. CasADi学习(2)
  6. python 计算TIFF图像相关性 根据相关性筛选特征 使用PCA提取主要特征
  7. Process finished with exit code 137 (interrupted by signal 9: SIGKILL)错误
  8. ReflectionTestUtils.invokeMethod方法的使用
  9. Windows10 IoT 企业版 LTSC 2021安装应用商店
  10. 如何高效的学习高等数学