首先呢,來一段java代碼來開點胃。等等等等,耍我呢,這是java代碼?java
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0058\u004a\u004a\u0020\u007b
\u0020\u0020\u0020\u0020\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0072\u0067\u0073\u0029\u0020\u007b
\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0022\u5c0f\u59d0\u59d0\u6211\u7231\u4f60\u0022\u0029\u003b
\u0020\u0020\u0020\u0020\u007d
\u007d
複製代碼
很是負責任的告訴你,是的!不信請看下圖。純純正正的java代碼,class爲XJJ的java源碼,執行後打印小姐姐我愛你
。python
仍是不信?自個兒拷貝下去執行一下。不過,IDEA是會報錯的,用命令行哦。git
好隱晦的表白方式,是暗戀麼?github
其實沒什麼神奇的,咱們不過是將正常的源代碼翻譯成了unicode編碼方式。就是這段java代碼。bash
private static String toUnicode(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) != '\n') {
int cp = Character.codePointAt(str, i);
int charCount = Character.charCount(cp);
if (charCount > 1) {
i += charCount - 1;
if (i >= str.length()) {
throw new IllegalArgumentException("truncated unexpectedly");
}
}
sb.append(String.format("\\u%04x", cp));
} else {
sb.append("\n");
}
}
return sb.toString();
}
複製代碼
耍到這裏,我忽然有了一個好主意。我要將個人java項目,所有編碼成這種方式,而後傳到github,嘿嘿。能編譯但不可讀,比base64更冷門。app
因此如下幾行python代碼誕生了(僅用於python3):ide
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
java = sys.argv[1]
s = sb = u""
with open(java, 'r' , encoding='utf-8') as f:
s = f.read()
for _c in s:
sb += '\\u%04x' % ord(_c)
with open(java, 'w' , encoding='utf-8') as f:
f.write(sb)
print(java)
複製代碼
在命令行中執行如下命令,將會將指定目錄(test)中的全部java文件翻譯成咱們所想要的。ui
find ./test | grep \\.java$ | xargs -I '{}' python3 uni.py {}
複製代碼
是否是很簡單?編碼
那改完的java文件怎麼恢復呢?我只管編碼無論解碼,剩下的要靠本身啦,這但是瞭解unicode編碼的好機會。spa
碼農世界多是太過寂寥,無聊的項目也是頻出。好比這個,判斷數字是否是13,居然接近4k星了。github.com/jezen/is-th…
貼上它的API感覺下來自碼農世界深深的空虛感吧。
var is = require('is-thirteen');
// Now with elegant syntax.
is(13).thirteen(); // true
is(12.8).roughly.thirteen(); // true
is(6).within(10).of.thirteen(); // true
is(2003).yearOfBirth(); // true
// check your math skillz
is(4).plus(5).thirteen(); // false
is(12).plus(1).thirteen(); // true
is(4).minus(12).thirteen(); // false
is(14).minus(1).thirteen(); // true
is(1).times(8).thirteen(); // false
is(26).divideby(2).thirteen(); //true
複製代碼