【发布时间】:2021-09-02 05:58:48
【问题描述】:
如何将 srt 文件中的变音符号替换为规范化的单词?
我有一个罗马尼亚语 srt,我正在尝试使用 jellyfin 流式传输电影,但我遇到了一个问题,即应用程序不支持 ĂăÂâÎîȘșȚț 等特殊字符,因此我正试图摆脱它们。
我尝试使用 unidecode,但这些词奇怪地被 ț 替换 -> th, ș -> o
'我也尝试过仅使用 sed 替换字符,但某些字符(如 ș)显示为 º,因此以下函数不会替换它们:
def strip_accents(s):
d = 'ĂăÂâÎîȘșȚț'
n = 'AaAaIiSsTt'
dl = [i for i in d]
nl = [i for i in n]
ii = 0
for x in dl:
s = re.sub(x, nl[ii], s)
ii += 1
return s
【问题讨论】:
-
可能编辑器和编译器使用不同的编码,在python源码中使用Unicode escaping
\u。 -
您使用的是哪个操作系统?你是如何获取字符串的,你知道它的编码吗?
-
@MarkRansom 我在我的 debian 操作系统上做所有事情
-
@JoopEggen 嗯。我使用 vi 作为我的编辑器
-
所以你很可能会一直使用 UTF-8,除非我们仍然不知道你的字符串的来源。在尝试修改字符串之前
print字符串会发生什么情况?
标签: python-3.x diacritics