Список незаметных символов для использования в коде Java, чтобы предотвратить его копирование, вставку и компиляцию - PullRequest
0 голосов
/ 28 мая 2020

это необычный вопрос: я хочу знать список символов, которые я мог бы заменить в коде Java, чтобы предотвратить его копирование, вставку и компиляцию.

Объяснение: я обучаю курс Java и подать онлайн-экзамен с помощью Microsoft Forms. Один из вопросов, который мне нравится использовать, - это «Будь компилятором» (вдохновленный книгами Head First), в котором ученик должен запустить код в своей голове и записать результат. Проблема в том, что из-за Covid-19 он был онлайн из дома, студент мог просто скопировать и вставить код и запустить его.

PS: Microsoft Form принимает только одно маленькое изображение для каждого вопроса. И не принимайте ни тег HTML, ни тег LaTex, ни тег уценки.

PS: Идея вдохновлена ​​JavaScript Prank / Joke

1 Ответ

1 голос
/ 29 мая 2020

Благодаря этому list (предоставлен pafau) я смог найти несколько символов:

  • 202F; 0020; (→) УЗКОЕ ПРОСТРАНСТВО БЕЗ РАЗРЫВА → ПРОБЕЛ
  • 201A; 002 C; (‚→,) ОДИН ЦИТАТНЫЙ ЗНАК НИЗКОГО-9 → ЗАПЯТА
  • 037E; 003B; (; →;) ГРЕЧЕСКИЙ ВОПРОСИТЕЛЬНЫЙ ЗНАК → СЕМИКОЛОН
  • 1400; 003D; (᐀ → =) КАНАДСКИЙ СИЛЛАБИКА ДЕФИС → ЗНАК РАВНО

Следующий код в python помещает номер строки и заменяет эти символы:

# -*- coding: utf-8 -*-

import sys

text_numbered = ''

with open(sys.argv[1], 'r') as my_file:
    for counter, line in enumerate(my_file, 1):
        text_numbered += '{:3d}'.format(counter) + ' - ' + str(line)

text = text_numbered
# 202F; 0020; (   →   ) NARROW NO-BREAK SPACE → SPACE
text = text.replace(' ', ' ')
# 201A; 002C; ( ‚ → , ) SINGLE LOW-9 QUOTATION MARK → COMMA
text = text.replace(',', '‚')
# 037E; 003B; ( ; → ; ) GREEK QUESTION MARK → SEMICOLON
text = text.replace(';', ';')
# 1400; 003D; ( ᐀ → = ) CANADIAN SYLLABICS HYPHEN → EQUALS SIGN
text = text.replace('=', '᐀')
print(text)

К сожалению, я был не удалось найти последовательность букв, идентичную «СТРОЧНАЯ ЛАТИНСКАЯ БУКВА» или «ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА»

...