[Интересно] Этот Java-код слишком странный

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, класс - это исходный код 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