我需要删除现有字幕文本文件中的特定unicode
我基本上是在制作字幕,我有这个阿拉伯文件,当我在记事本上打开它,右键单击并选择ShowUnicode控制字符时,我在每一行的左边都会出现一些奇怪的字符。我尝试了很多方法来删除它,但都失败了。我也尝试了NOTEPAD++但失败了 记事本++ 字幕编辑 擅长 话 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 ولن يتذكر ما حصل في الساعات الـ٦ unicode没有显示在这里,unicode是U+202B,它显示一个¨符号,在谷歌上搜索后,我认为它被称为PILCROW 问题是它不能在ps4应用程序上正确显示字幕我需要删除现有字幕文本文件中的特定unicode,unicode,srt,Unicode,Srt,我基本上是在制作字幕,我有这个阿拉伯文件,当我在记事本上打开它,右键单击并选择ShowUnicode控制字符时,我在每一行的左边都会出现一些奇怪的字符。我尝试了很多方法来删除它,但都失败了。我也尝试了NOTEPAD++但失败了 记事本++ 字幕编辑 擅长 话 288 00:24:41,960 --> 00:24:43,840 أتعلم، قللنا من شأنك فعلاً 289 00:24:44,000 --> 00:24:47,120 كان علينا تجنيدك لتكون
我需要这个皮尔克罗标志离开。有了这个网站,我可以在这个文件中看到问题PILCROW
¨
被各种软件和出版商用来显示文档中的行尾。您的文件中不存在实际的Unicode字符,因此您无法删除它。各种软件和发行商使用PILCROW^。文件中不存在实际的Unicode字符,因此无法删除它。这些行中的Unicode字符是“从右到左嵌入的”
(代码\u202b)和“弹出方向格式化”(代码\u202c)——
这些在文本中用于指示应呈现包含的文本
从右向左,而不是从左向右
现在,这些字符作为提示包含在显示文本的应用程序中,而不是实际执行文本反转-因此它们可能可以在不影响文本显示本身的情况下被删除
现在,这是一个编程问答网站,但您没有指出您熟悉的任何编程语言-至少足以运行一个程序。所以很难知道如何给出一个适合你的答案
Python可以用来创建一个小程序来从文件中过滤这些字符,但是我不愿意编写一个完整的GUI程序,或者一个可以在那里运行的web应用程序,作为这里的答案
另一件事是,一个可以从命令行中过滤出几个字符的程序——因为它只是几行代码
您必须将下面的列表存储为一个名为“fixsubtitles.py”的文件,并使用终端(“cmd”,如果您在Windows上)键入python3 fixsubtitles.py\path\to\subtitle file.txt
,然后按enter键
当然,在从安装Python3运行时之后
(如果您在已预装的Mac或Linux上)
导入系统
从pathlib导入路径
encoding=“utf-8”
删除\u set=str.maketrans(“\u202b\u202c”)
如果len(sys.argv<2):
打印(“用法:python3 fixsubtitles.py[filename]”,file=sys.stderr)
出口(1)
路径=路径(sys.argv[1])
数据=路径。读取文本(编码=编码)
path.write_text(data.translate(“,”,remove_set),encoding=encoding)
打印(“完成”)
您可能需要调整编码-因为Windows并不总是使用utf-8(文件可能位于,例如“cp1256”-如果您在运行程序时遇到unicode错误,请尝试使用它代替“utf-8”),也许可以在要删除的字符集中添加更多字符-问题中链接的工具应该会显示其他此类字符(如果有的话)。除此之外,上面的程序应该可以运行这些行中的Unicode字符是“从右到左嵌入的” (代码\u202b)和“弹出方向格式化”(代码\u202c)—— 这些在文本中用于指示应呈现包含的文本 从右向左,而不是从左向右 现在,这些字符作为提示包含在显示文本的应用程序中,而不是实际执行文本反转-因此它们可能可以在不影响文本显示本身的情况下被删除 现在,这是一个编程问答网站,但您没有指出您熟悉的任何编程语言-至少足以运行一个程序。所以很难知道如何给出一个适合你的答案 Python可以用来创建一个小程序来从文件中过滤这些字符,但是我不愿意编写一个完整的GUI程序,或者一个可以在那里运行的web应用程序,作为这里的答案 另一件事是,一个可以从命令行中过滤出几个字符的程序——因为它只是几行代码 您必须将下面的列表存储为一个名为“fixsubtitles.py”的文件,并使用终端(“cmd”,如果您在Windows上)键入
python3 fixsubtitles.py\path\to\subtitle file.txt
,然后按enter键
当然,在从安装Python3运行时之后
(如果您在已预装的Mac或Linux上)
导入系统
从pathlib导入路径
encoding=“utf-8”
删除\u set=str.maketrans(“\u202b\u202c”)
如果len(sys.argv<2):
打印(“用法:python3 fixsubtitles.py[filename]”,file=sys.stderr)
出口(1)
路径=路径(sys.argv[1])
数据=路径。读取文本(编码=编码)
path.write_text(data.translate(“,”,remove_set),encoding=encoding)
打印(“完成”)
您可能需要调整编码-因为Windows并不总是使用utf-8(文件可能位于,例如“cp1256”-如果您在运行程序时遇到unicode错误,请尝试使用此代码代替“utf-8”),并且可能会向要删除的字符集添加更多字符-t
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")