Прежде всего, давайте немного закусим кусочком 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, класс - это исходный код Java XJJ, печать после выполнения小姐姐我爱你
.
Все еще не верите? Скопируйте и выполните его самостоятельно. Однако IDEA сообщит об ошибке, используйте командную строку.
Такой непонятный способ признания, разве это влюбленность?
На самом деле никакой магии нет, мы просто переводим обычный исходный код в кодировку юникод. это код Java.
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.
Так родились следующие строки кода Python (только для python3):
#!/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)
Выполнение следующей команды в командной строке преобразует все java-файлы в указанном каталоге (тест) в то, что мы хотим.
find ./test | grep \\.java$ | xargs -I '{}' python3 uni.py {}
Разве это не просто?
Как восстановить модифицированный java-файл? Меня интересует только кодирование, а не декодирование, а все остальное зависит от меня. Это хорошая возможность узнать о кодировке Unicode.
Мир программистов может быть слишком одиноким, и часто встречаются скучные проекты. Например, чтобы судить о том, является ли число 13, оно близко к 4k звезд.GitHub.com/net как/это-дни…
При приложении его 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