切噜语介绍
切噜语
“ |
ちぇるーん♪ ちぇるちぇる、ちぇちぇるぱ、ちぇるるるん! ちぇらるれ、ちぇらちぇら、ちぇるちぇぽぱぴ? |
” |
千爱瑠在剧情中所使用的一种不明所以的表达方式,其基本形态为千爱瑠的口头禅“切噜()”,详见“风间千爱瑠”。
来源于萌娘百科
编码介绍
将汉字的UTF-8编码的前4位和后4位,分别对应16位长度的字符集中位置,拿到对应的字符重新编码成的一种加密语言。
![qieru](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
代码实现
编码:
1 2 3 4 5 6 7 8 9 10
| val QIERU = arrayOf("切", "卟", "叮", "咧", "哔", "唎", "啪", "啰", "啵", "嘭", "噜", "噼", "巴", "拉", "蹦", "铃") var qstr: String = ""
val str = "七宝".toByteArray() str.forEach { it -> qstr += QIERU[it.toInt().and(15)] qstr += QIERU[it.toInt().shr(4).and(15)] } println(qstr)
|
解码:
1 2 3 4 5 6 7 8 9 10 11
| val QIERU = arrayOf("切", "卟", "叮", "咧", "哔", "唎", "啪", "啰", "啵", "嘭", "噜", "噼", "巴", "拉", "蹦", "铃") val qstr = "哔蹦波噼咧波喇蹦蹦噜拉嘭" var pstr: ByteArray = ByteArray(qstr.length / 2)
for (i in 0 until qstr.length step 2) { println("index: ${i / 2},element1: ${qstr[i]},element2: ${qstr[i + 1]}") pstr[i / 2] = QIERU.indexOf(qstr[i].toString()).or(QIERU.indexOf(qstr[i + 1].toString()).shl(4)).toByte() } val s = pstr.toString(Charsets.UTF_8) println(s)
|
Java版
基于狼宝机器人的实际应用
通过两个关键词来判定是否触发相应功能。
编码:“切噜一下[内容]”
1 2 3 4 5 6 7 8 9 10 11
| msg.startsWith("切噜一下") -> { val QIERU = arrayOf("切", "卟", "叮", "咧", "哔", "唎", "啪", "啰", "啵", "嘭", "噜", "噼", "巴", "拉", "蹦", "铃") val qieru = msg.substring(4,msg.length).replace(" ","") var encode: String = "切噜~♪切" qieru.toByteArray().forEach { encode += QIERU[it.toInt().and(15)] encode += QIERU[it.toInt().shr(4).and(15)] } this.group.sendMessage(encode) }
|
解码:切噜~♪切
1 2 3 4 5 6 7 8 9 10 11 12
| msg.startsWith("切噜~♪切") -> { val QIERU = arrayOf("切", "卟", "叮", "咧", "哔", "唎", "啪", "啰", "啵", "嘭", "噜", "噼", "巴", "拉", "蹦", "铃") val qieru = msg.substring(5,msg.length).replace(" ","") var decode: ByteArray = ByteArray(qieru.length / 2) for (i in 0 until qieru.length step 2) { decode[i / 2] = QIERU.indexOf(qieru[i].toString()).or(QIERU.indexOf(qieru[i + 1].toString()).shl(4)).toByte() } val s = decode.toString(Charsets.UTF_8) this.group.sendMessage(s) }
|
结语
结束,下一篇