Clementine 不播放名称中包含某些字符的文件

use*_*784 7 music utf-8 locale clementine

上周我用morituri和rhythmbox翻录了一些CD。除了一张CD外,一切似乎都很好。几首曲目后,我在用 morituri 翻录(到 FLAC)时遇到了一些奇怪的错误,所以我用 rhythmbox 翻录了那张 cd 的其余部分。

之后 Clementine 无法播放我从 cd 中翻录的曲目(以及那些用 morituri 翻录的曲目和那些用节奏盒翻录的曲目)。克莱门汀表现得好像它们不在我的图书馆里一样。然而,有了 Rhythmbox,我可以完美地播放所有曲目。

我从朋友那里得到的一些 mp3 文件确实有同样的问题。我可以在 Rhythmbox 中播放它们,但 Clementine 表现得好像它们不存在一样。

我如何让它再次正常工作?我已经尝试重新安装它,删除配置文件,从 repos 中删除安装的那个并从 www.clementine-player.org 安装最新版本

注意:Clementine 可以完美地播放我翻录的其他 cd 以及我的音乐库的其余部分(主要是 FLAC,有些文件是 mp3)。

我不知道我可以提供哪些额外信息,但请随时询问。

编辑:在终端中运行 clementine 然后尝试播放“有问题”的曲目之一时,我收到以下消息:

11:36:48.542 INFO  MoodbarLoader:144                Creating moodbar data for "/home/user138784/Music/Stromae/Racine Carrée/01.Ta fête.flac" 
11:36:48.546 ERROR MoodbarPipeline:134              Error processing  QUrl( "file:///home/user138784/Music/Stromae/Racine Carrée/01.Ta fête.flac" )  : "Resource not found." 
11:36:48.546 ERROR MoodbarPipeline:134              Error processing  QUrl( "file:///home/user138784/Music/Stromae/Racine Carrée/01.Ta fête.flac" )  : "Resource not found." 
11:36:48.571 ERROR GstEnginePipeline:563            2 "gstfilesrc.c(1042): gst_file_src_start (): /GstPipeline:pipeline/GstURIDecodeBin:uridecodebin-15/GstFileSrc:source:
No such file "/home/user138784/Music/Stromae/Racine Carrée/01.Ta fête.flac"" 
11:36:48.572 ERROR GstEnginePipeline:563            2 "gstfilesrc.c(1042): gst_file_src_start (): /GstPipeline:pipeline/GstURIDecodeBin:uridecodebin-15/GstFileSrc:source:
No such file "/home/user138784/Music/Stromae/Racine Carrée/01.Ta fête.flac"" 
11:36:48.681 WARN  GstEngine:572                    Gstreamer error: "Resource not found." 
11:36:48.684 WARN  unknown                          QTimeLine::start: already running 
Run Code Online (Sandbox Code Playgroud)

我认为问题可能与文件路径中使用的某些字符有关。例如,无法播放专辑“Racine Carrée”,以及“Goran Bregovi?”中的歌曲。当我使用Beets来组织我的音乐时,这个路径是自动创建的。也许我可以编辑我的 Beets 配置文件以排除特殊字符。

我正在使用 Ubuntu 13.10

编辑:该locale命令返回以下输出:

LANG=en_US
LANGUAGE=en_GB
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

ecc*_*Sam 3

这很奇怪。"Ta f\xc3\x83\xc2\xaate""Ta f\xc3\xaate",UTF-8 语言环境系统应该能够毫无问题地正常打开它们。我刚刚在 Ubuntu 13.10 的新副本上安装了 Clementine,并且测试音频文件无论我如何更改路径名都可以正常播放。\n我知道这听起来很愚蠢,但是您可以尝试通过在终端中
输入来检查当前的区域设置吗?locale我怀疑这是问题所在,但检查一下也没什么坏处。

\n\n

尝试locale -a看看 和 在您的系统上是否en_US.UTF-8可用en_GB.UTF-8。如果是,您需要通过sudo gedit /etc/default/locale在终端中键入来打开区域设置配置文件,并将所有内容更改为使用en_US.UTF-8(如果您想要英国英语,则将 LANG 更改为en_GB.UTF-8 )。

\n\n

我认为单独 LANG 应该没问题,所以你的语言环境配置文件应该如下所示:

\n\n
\n

LANG =“en_GB.UTF-8”

\n
\n\n

之后,重新启动系统并尝试再次播放文件。

\n\n

查看此内容以获取更多信息:
\n https://help.ubuntu.com/community/Locale#Changing_settings_permanently

\n\n

如果编辑 /etc/default/locale 不起作用:

\n\n

首先尝试手动生成并重新配置当前的语言环境包:

\n\n
sudo locale-gen\nsudo dpkg-reconfigure locales\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后安装语言包,以确保语言环境确实存在(只是为了安全起见):

\n\n
sudo apt-get install language-pack-en-base\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,从系统中打开语言支持并尝试将英语(美国)拖到顶部,并在系统范围内应用它。注销并重新登录,locale在终端中运行以查看更改是否适用。如果有效的话,那就太好了。但如果手动编辑语言环境文件失败,它可能无法工作,因此请sudo gedit /etc/environment在终端中尝试,并在 PATH 之后添加以下内容:

\n\n
LANG="en_US.UTF-8"\nLC_ALL="en_US.UTF-8"\n
Run Code Online (Sandbox Code Playgroud)\n\n

保存并重启看看是否生效。locale如果有效的话,这次您应该会看到正确的输出,否则,您的系统将从其他位置获取区域设置。

\n\n

如果仍然无法对您的系统区域设置使用 UTF-8,

\n\n
sudo gedit etc/bash.bashrc\n
Run Code Online (Sandbox Code Playgroud)\n\n

将其添加到最后一行(注意不要编辑其他任何内容):

\n\n
# Forcing locale to en_US.UTF-8\nexport LANG="en_US.UTF-8"\nexport LC_ALL="en_US.UTF-8"\n
Run Code Online (Sandbox Code Playgroud)\n\n

保存并重新启动。

\n