-2

当一首歌的细节变成乱七八糟的中文时,我遇到了这个问题。例如:

トランスルーセント变成僩俦儞僗儖乕僙儞僩</p>

这通常发生在下载的歌曲上。我分析了 unicode,它们似乎在 8k 左右不同。什么在改变 unicode?我的朋友下载了相同的文件没有问题。

4

1 回答 1

3

字节序列:

83 67 83 89 83 93 83 58 83 8b 81 5b 83 5a 83 93 83 67

可使用 Shift-JIS 编码(在 Windows 上,代码页 932)解释为“トランスルーセント”,或使用 GB 编码(在 Windows 上,代码页 936)解释为“僩俦儞僗儖乕僙儞僩”。如果 Windows 机器遇到这样的一系列字节而没有任何信号告诉它正在使用哪种编码,它将选择其“默认代码页”,这取决于控制面板区域选项中的设置“非 Unicode 的语言”应用”领域。如果设置为日语,您会看到“トランスルーセント”,如果设置为中文,您会看到“僩俦儞僗儖乕僙儞僩”,如果设置为西欧,您会看到“ƒgƒ‰ƒ“ƒXƒ‹[ƒZƒ“ƒg”(经典 mojibake)。

作为应用程序作者,为避免这种情况发生,您应该使用 Unicode 字符串和 Unicode 安全编码(如 UTF-8 和 UTF-16)来存储数据。作为最终用户,为避免这种情况发生,您应该使用支持 Unicode 的应用程序和格式。当然,如果您正在下载随机 MP3,您对编码它的应用程序的作用没有太多发言权,您将不得不忍受它。

目前尚不清楚您在问题中描述的确切事件顺序以及您正在比较的不同之处。如果您正在比较 MP3 文件,请注意一些高度反社交的媒体播放器应用程序决定在播放文件时写入 ID3 标签,这可能会以任意方式更改它。

于 2013-09-07T18:06:58.113 回答