Сегодня я случайно узнал, что существует символ THIN SPACE и подобные… — сташик Лорда — TG.ME

Сегодня я случайно узнал, что существует символ THIN SPACE и подобные ему.
Эти символы выглядят как обычные пробелы, но на самом деле очень хитрые — их часто используют для защиты от ИИ или копипаста.
Настоятельно рекомендую всегда проверять символы, прежде чем вставлять их куда-либо, особенно если ты просишь ИИ переписать текст. Велика вероятность, что этот «умник» может добавить такие скрытые символы.

Что именно они обычно вставляют

U+00A0 NO-BREAK SPACE (NBSP)
Выглядит как обычный пробел, но не равен U+0020.
Часто появляется из HTML ( ).

U+202F NARROW NO-BREAK SPACE
Узкий неразрывный пробел (часто вокруг единиц измерения, процентов, во франц. типографике).

U+2009 THIN SPACE
Тонкий пробел (типографика).

U+200B ZERO WIDTH SPACE
Вообще невидимый (ширина 0), но символ есть — из-за него строки “не совпадают”.

вот они:

# Пробелоподобные символы -> обычный пробел
SPACE_LIKE_TO_SPACE = {
"\u00A0": " ", # NO-BREAK SPACE
"\u202F": " ", # NARROW NO-BREAK SPACE
"\u2007": " ", # FIGURE SPACE
"\u2009": " ", # THIN SPACE
"\u200A": " ", # HAIR SPACE
"\u2002": " ", # EN SPACE
"\u2003": " ", # EM SPACE
"\u2004": " ", # THREE-PER-EM SPACE
"\u2005": " ", # FOUR-PER-EM SPACE
"\u2006": " ", # SIX-PER-EM SPACE
"\u2008": " ", # PUNCTUATION SPACE
"\u205F": " ", # MEDIUM MATHEMATICAL SPACE
"\u3000": " ", # IDEOGRAPHIC SPACE
"\t": " ", # TAB -> пробел
}

# Невидимые символы, которые обычно мешают совпадениям -> удалить
REMOVE_CHARS = {
"\u200B", # ZERO WIDTH SPACE
"\u200C", # ZERO WIDTH NON-JOINER
"\u200D", # ZERO WIDTH JOINER
"\u2060", # WORD JOINER
"\uFEFF", # ZERO WIDTH NO-BREAK SPACE / BOM
}


мой небольшой скрипт:

1. Нормализовать файл и записать результат:

python normalize_wс.py file.txt -o fixed.txt


2. Передать текст напрямую:

python normalize_wс.py -t "Hello, A\u00A0B\u200BC"


3. Через stdin:

cat file.txt | python normalize_wс.py > fixed.txt


#script #python
normolize_wc.py4.2 KB · PY
🔥7❤1👍1
February 2, 2026 463 6