Мне нужно удалить определенный Unicode в моем существующем текстовом файле субтитров - PullRequest
1 голос
/ 12 июня 2019

Я в основном работаю с субтитрами, и у меня есть этот арабский файл, и когда я открываю его в блокноте и щелкаю правой кнопкой мыши и выбираю ПОКАЗАТЬ СИМВОЛЫ УПРАВЛЕНИЯ ЮНИКОДОМ, я даю мне странные символы слева от каждой строки. Я пробовал так много способов удалить его, но потерпел неудачу, я также попробовал NOTEPAD ++, но не получилось.

Блокнот ++ РЕДАКТИРОВАНИЕ СУБТИТРОВ EXCEL СЛОВО

288 00: 24: 41,960 -> 00: 24: 43,840 أتعلم ، قللنا من شأنك فعلاً

289 00: 24: 44,000 -> 00: 24: 47,120 كان علينا تجنيدك لتكون جاسوساً مكان (كاي سي)

290 00: 24: 47,280 -> 00: 24: 51,520 لا تعلمون كم أنا سعيد لسماع ذلك

291 00: 24: 54,800 -> 00: 24: 58,160 لا تقلق ، سيستيقظ نشيطاً غداً

292 00: 24: 58,320 -> 00: 25: 00,800 ولن يتذكر ما حصل في الساعات الـ٦

Unicodes не показывает в этом Unicode U + 202B, который показывает знак which, после поиска в Google, я думаю, что это называется PILCROW.

Проблема в том, что в приложении ps4 неправильно отображаются субтитры.

Мне нужен этот знак PILCROW, чтобы уйти. с этим сайтом я вижу проблему в этом файле https://www.soscisurvey.de/tools/view-chars.php

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Символы Unicode в этих строках обозначены как «ВПРАВО ВПРАВО». (код \ u202b) и 'ФОРМАТИРОВАНИЕ POP НАПРАВЛЕНИЯ' (код \ u202c) - они используются в тексте, чтобы указать, что включенный текст должен быть представлен справа налево вместо западного слева направо.

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

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

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

Программа, которая может работать из командной строки, просто отфильтровывая несколько символов, - это другое дело - это всего лишь несколько строк кода.

Вы должны сохранить следующий список в виде файла с именем, скажем, «fixsubtitles.py», и с терминалом («cmd», если вы работаете в Windows) введите python3 fixsubtitles.py \path\to\subtitlefile.txt и нажмите enter.

Это, конечно же, после установки Python3 runtime с http://python.org (если вы используете Mac или Linux, который уже предустановлен)

import sys
from pathlib import Path
encoding = "utf-8"
remove_set = str.maketrans("\u202b\u202c")
if len(sys.argv < 2):
    print("Usage: python3 fixsubtitles.py [filename]", file=sys.stderr)
    exit(1)
path = Path(sys.argv[1])
data = path.read_text(encoding=encoding)
path.write_text(data.translate("", "", remove_set), encoding=encoding)
print("Done")

Вам может потребоваться настроить кодировку - поскольку Windows не всегда использует utf-8 (файлы могут быть, например, «cp1256»), если при запуске программы выдается ошибка Unicode, попробуйте использовать ее вместо «utf». -8 "), и, возможно, добавьте больше символов в набор символов, которые нужно удалить - инструмент, который вы указали в вопросе, должен показать вам другие такие символы, если таковые имеются. Помимо этого, программа выше должна работать

0 голосов
/ 12 июня 2019

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

...