Macos Mac与PC文本编码

Macos Mac与PC文本编码,macos,utf-8,character-encoding,Macos,Utf 8,Character Encoding,我注意到,当您导出音乐库时,iTunes中的这一点特别不同 我有一首带有é的歌曲(即带有尖锐口音的小拉丁字母E),当我在Windows中导出库时,它的编码为%C3%A9,但当我从Mac导出库时,会打印一个普通的“E”,后面跟着%CC%81 例如: Song Name: Héllo World Windows Export: H%C3%A9llo World Mac Export: He%CC%81llo World 对于我正在制作的一个程序来说,这很重要,在Windows版本中,我解码了编码,

我注意到,当您导出音乐库时,iTunes中的这一点特别不同

我有一首带有é的歌曲(即带有尖锐口音的小拉丁字母E),当我在Windows中导出库时,它的编码为%C3%A9,但当我从Mac导出库时,会打印一个普通的“E”,后面跟着%CC%81

例如:

Song Name: Héllo World
Windows Export: H%C3%A9llo World
Mac Export: He%CC%81llo World
对于我正在制作的一个程序来说,这很重要,在Windows版本中,我解码了编码,但是现在如果文件来自Mac,它就不起作用了

那么为什么会有这种差异呢?有没有一个地方我可以看到差异,看看Mac编码是什么?是否有一个Object-C例程来解码这些字符串


谢谢。

C3A9是字符的UTF-8编码。
CC81
是用于组合急性重音字符(U+0301)的UTF-8编码

一个“e”后跟一个组合的尖锐重音,与字符“e”组合在一起。
这两者只是不同形式的合作


我不知道为什么一个iTunes更喜欢一个而不是另一个,这样做没有内在的原因。

C3A9
是字符的UTF-8编码。
CC81
是用于组合急性重音字符(U+0301)的UTF-8编码

一个“e”后跟一个组合的尖锐重音,与字符“e”组合在一起。
这两者只是不同形式的合作


我不知道为什么一个iTunes更喜欢一个而不是另一个,这样做没有内在的原因。

我认为iTunes也不喜欢;毫无疑问,底层的OSs对两者都有相同的理解,但当他们不得不选择其中一种作为输出时,微软走了一条路,苹果走了另一条路。是的,可能就是这样。我不知道iTunes在多大程度上使用了底层API,也不知道它在多大程度上坚持标准化Unicode。我不知道Windows,但Mac文件系统(HFS+)坚持使用分解形式(“e”+组合重音),所以iTunes做什么都无所谓(好吧,除非它以某种方式绕过文件系统代码…),谢谢,这真的把事情弄清楚了!有人知道有一个网站显示了所有组合编码的列表吗?事实上,操作系统在这里的行为非常不同:Mac OS X在写入时将文件名转换为规范化形式D的变体,而Windows将其视为16位单元的不透明序列。OS X的行为在操作系统中是相当独特的,并且以有趣的方式破坏了可移植性(例如,如果您假设文件名最终被传递到磁盘上的操作系统,那么您的程序将无法在OS X上运行);毫无疑问,底层的OSs对两者都有相同的理解,但当他们不得不选择其中一种作为输出时,微软走了一条路,苹果走了另一条路。是的,可能就是这样。我不知道iTunes在多大程度上使用了底层API,也不知道它在多大程度上坚持标准化Unicode。我不知道Windows,但Mac文件系统(HFS+)坚持使用分解形式(“e”+组合重音),所以iTunes做什么都无所谓(好吧,除非它以某种方式绕过文件系统代码…),谢谢,这真的把事情弄清楚了!有人知道有一个网站显示了所有组合编码的列表吗?事实上,操作系统在这里的行为非常不同:Mac OS X在写入时将文件名转换为规范化形式D的变体,而Windows将其视为16位单元的不透明序列。OS X的行为在操作系统中相当独特,并以有趣的方式破坏了可移植性(例如,如果您假设文件名最终传递到磁盘上的OS,那么您的程序将无法在OS X上运行)。