5 способов удаления символов юникода в Python

5 способов удаления символов юникода в Python

В этой статье вы узнаете 5 надежных способов избавления от символов юникода в Python.

Введение

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

Что такое символы юникода?

Unicode — это международный стандарт кодирования, который широко распространен и принят во всем мире. Он используется с различными языками и сценариями, с помощью которых каждой букве, цифре или символу присваивается уникальное числовое значение, которое применяется на разных платформах и программах.

Примеры удаления символов юникода

Сегодня я покажу все различные способы, с помощью которых мы можем удалить символы Юникода из строки.

Использование метода encode и decode

В этом примере я буду использовать функцию encode и функцию decode для удаления символов Юникода из строки.

Функция encode закодирует строку в ‘ASCII’ и ошибку как ‘ignore’, чтобы удалить символы Unicode. Функция decode затем декодирует строку обратно в ее виде.

Давайте рассмотрим этот пример для более детального понимания концепции:

line = "Egorov \u500cEgor"
line_encode = line.encode("ascii", "ignore")
line_decode = line_encode.decode()
print(f"Строка после удаления символов юникода: {line_decode}")

Вывод программы:

Строка после удаления символов юникода: Egorov Egor

Объяснение:

  • Во-первых, я возьму входную строку в переменной с именем line.
  • Затем я применяю метод encode, который закодирует строку в ‘ASCII’ и ошибку как ‘ignore’, чтобы удалить символы Юникода.
  • После этого я применяю метод decode, который преобразует байтовую строку в обычный строковый формат.
  • Наконец, я получаю результат.

Таким образом, вы можете увидеть выходную строку со всеми удаленными символами юникода.

Использование метода replace

В этом примере я буду использовать метод replace для удаления символов юникода из строки.

Предположим, вам нужно удалить конкретный символ юникода из строки, поэтому вы используете метод string.replace, который удалит именно этот символ из строки.

Давайте рассмотрим следующий пример для лучшего понимания:

line = "Egorov \u500cEgor"
line_replace = line.replace("\u500c", "")
print(f"Строка после удаления символов юникода: {line_replace}")

Вывод программы:

Строка после удаления символов юникода: Egorov Egor

Объяснение:

  • Во-первых, я беру входную строку в переменной с именем line.
  • Затем я применяю метод replace, в котором мы с вами заменим конкретный символ unicode пустым пространством.
  • Наконец, мы получаем результат.

Таким образом, вы можете увидеть выходную строку со всеми удаленными символами юникода.

Использование метода character.isalnum

В этом примере я буду использовать метод character.isalnum для удаления специальных символов из строки.

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

Давайте рассмотрим пример:

line_source = "ПРимер строки в которой /есть куча!? разных? символов"
line_output = ""

for chr in line_source:
    if chr.isalnum():
        line_output += chr
print(line_output)

Вывод программы:

ПРимерстрокивкоторойестькучаразныхсимволов

Объяснение:

  • Во-первых, я беру входную строку в переменной с именем line_source.
  • Затем беру пустую строку с переменной line_output.
  • После этого я подаю заявку на цикл от первого символа до последнего в строке.
  • Далее проверяю условие if и добавляю символ в пустую строку.
  • Этот процесс будет продолжаться до тех пор, пока не появится последний символ в строке.
  • Наконец, я получаю результат.

Итак, мы видим вывод со всеми специальными символами и пробелами, удаленными из строки.

Использование регулярного выражения

Сейчас мы будем использовать регулярное выражение (метод re.sub) для удаления определенного символа юникода из строки.

Этот метод содержит в себе три параметра: pattern, replace и string.

Рассмотрим пример:

import re

line_source = "Привéтствую тебя чиатòтель!"
line_output = re.sub(r"(\xe9|\362)", "", line_source)

print(f"Строка после удаления символов: {line_output}")

Вывод программы:

Строка после удаления символов: Привтствую тебя чиаттель!

Объяснение:

  • Я импортирую модуль re.
  • Затем беру входную строку в переменной с именем line_source.
  • Применяю метод re.sub для удаления определенных символов из строки и сохраняю выходные данные в выходной переменной.
  • Как итог, я получаю результат.

Следовательно, мы видим вывод как конкретный символ, удаленный из строки.

Использование метода ord и цикла for

В этом примере мы будем использовать метод ord и цикл for для удаления символов Юникода из строки.

Метод ord принимает строку длины 1 в качестве аргумента и используется для возврата представления кодовой точки unicode переданного аргумента.

Давайте рассмотрим следующий пример:

line_source = "Егоров \u500cЕгор"

line_output = ''.join([i if ord(i) < 128 else ' ' for i in line_source])

print(f"Строка после удаления символова юникода: {line_output}")

Вывод программы:

Строка после удаления символова юникода: Егоров Егор  

Объяснение:

  • Во-первых, мы возьмем входную строку в переменной с именем line_source.
  • Затем мы применяем функцию join, внутри которой мы применили метод ord и цикл for, и сохраняем выходные данные в выходной переменной.
  • Получаем результат.

Таким образом, вы можете видеть вывод, когда символы юникода удаляются из строки.

Заключение

В этой статье вы познакомились с концепцией удаления символов юникода из строки.

Я раскрыл все способы, с помощью которых вы можете удалить символы юникода из строки. Все способы подробно объясняются с помощью примеров. Вы можете использовать любую из функций в соответствии с вашим выбором и вашими требованиями в программе.

Желаю вам удачи!

Егор Егоров

Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.

Ссылка на мой github есть в шапке. Залетай.

Оцените автора
Егоров Егор
Добавить комментарий

  1. Артем

    Почему Вы не говорить о том, что метод encode-decode предназначен только для английского текста? Метод ord также не работает с русским текстом

    Ответить