夜夜無夢 发表于 2015-12-18 13:32

含有假名的文件在OS X和Windows间复制导致浊音符号出错的问题

本帖最后由 夜夜無夢 于 2015-12-18 14:59 编辑

前段时间iPod Classic坏了,换了个Walkman,于是在Windows下把OS X分区的音乐文件直接拖到Walkman内,结果发现所有包含日文假名的文件名中浊音/半浊音符号都和假名分开了,比如「ダブルラリアット」会变成「ダブルラリアット」(不知道能不能看出來,可以复制后者粘贴到文本框试试删除一下)。

有时候看起来并没有异常(比如在Windows的资源管理器窗口内),但是删除假名时会先删除掉浊音符号;部分情况下浊音符号占了一个全角字符的宽度(比如在Walkman内查看);部分情况下则和后一字符重叠了(比如用Mp3tag编辑信息时)。

不仅是文件名,音乐文件内的标签信息也会出现同样的错误,但是标签错误不一定会出现在所有文件上,而是只有一部分文件,原理不明。

现在已经手动把所有出错的音乐标签信息修正,但是文件名和文件夹名出错太多改不过来,求批量修改方案。m3u8可以支持包含这种被拆开的假名的路径,于是可以绕过改名的问题了,算是问题解决了吧……

————————————————————————————————————————————————————

顺便问一下,Walkman要编辑播放列表的话只能在Media Go内创建然后通过Media Go传输播放列表和列表内的曲目吗?试了试直接用foobar2000创建播放列表丢到根目录,结果拔掉Walkman时创建资料库总是在进度条快走完时无限重启……用记事本打开创建的m3u播放列表发现曲目文件路径有出错的浊音符号的全都变成问号了,是不是这个原因?

tonyunreal 发表于 2015-12-18 13:47

OS X用户表示你贴的两段假名后退删除都正常
应该是Walkman和Windows对Unicode标准支持的不好吧

记得做Swift开发的时候苹果的文档里还特别提到了这种,在原始数据里是多个UTF-8字符但是操作系统要当作单个字来处理的情况

王留美 发表于 2015-12-18 13:52

文件名可以用foobar的文件管理功能,从id3读取信息来重命名文件

文件夹就不知道了

kubikiri 发表于 2015-12-18 14:22

m3u不支持Unicode吧?试试m3u8?

另外我同步WALKMAN一直是用WMP的,挺方便,A系列和F系列都没出过什么问题

einhorn 发表于 2015-12-18 14:23

本帖最后由 einhorn 于 2015-12-18 14:30 编辑

Unicode有NFC和NFD两种不同的范式,其中一种是会把合成字符拆散的,两种实际上是等价的

不过如果对这种拆分的Unicode字符串支持不好的话看起来就像是两个字符

处理这种情况要对Unicode字符串做normalization,NFC/NFD/NFKC/NFKD当中选一种,MAC开发文档上就有例子

neverer 发表于 2015-12-18 14:34

标签信息错误比如标题行的话,可以fb2k里选中后右键属性复制标题那个值到文本文件,批量替换,然后粘贴回去

夜夜無夢 发表于 2015-12-18 14:49

kubikiri 发表于 2015-12-18 14:22
m3u不支持Unicode吧?试试m3u8?

另外我同步WALKMAN一直是用WMP的,挺方便,A系列和F系列都没出过什么问题 ...

thx~这种方法可用

夜夜無夢 发表于 2015-12-18 14:50

einhorn 发表于 2015-12-18 14:23
Unicode有NFC和NFD两种不同的范式,其中一种是会把合成字符拆散的,两种实际上是等价的

不过如果对这种拆 ...

ID3标签的信息手动修正了,用m3u8可以支持包含这种被拆开的假名的路径,于是问题解决。感谢科普。

夜夜無夢 发表于 2015-12-18 14:52

tonyunreal 发表于 2015-12-18 13:47
OS X用户表示你贴的两段假名后退删除都正常
应该是Walkman和Windows对Unicode标准支持的不好吧



OS X下应该是没有这种问题的,以前我转换音乐和编辑标签都是在OS X下操作的。不过我在Windows下和Walkman上都有。
用Delete删除可以一次删掉,用Backspace就要删除两次。

夜夜無夢 发表于 2015-12-18 14:54

neverer 发表于 2015-12-18 14:34
标签信息错误比如标题行的话,可以fb2k里选中后右键属性复制标题那个值到文本文件,批量替换,然后粘贴回去 ...

考虑到错误的标签的数量和浊音平假面片假名的数量还是一个个手动修改快一点

夜夜無夢 发表于 2015-12-18 14:56

王留美 发表于 2015-12-18 13:52
文件名可以用foobar的文件管理功能,从id3读取信息来重命名文件

文件夹就不知道了 ...

部分文件ID3也出错。我估计是一开始在OS X下编辑的时候就有这个问题了。发现m3u8的播放列表可以支持,那么不用修正文件名也没有影响了。
页: [1]
查看完整版本: 含有假名的文件在OS X和Windows间复制导致浊音符号出错的问题