我已经编写了一个Java程序,用于根据从k3b翻录的CD生成m3u文件,该文件几乎保留了艺术家,专辑和曲目名称中的特殊字符编码。然后,我将这些m3u文件放置在服务器上,并生成GWT Web应用程序,其中m3u文件名是HTML定位标记的目标。对于99%以上的案例,这一切都非常完美。在某些情况下,特殊字符会导致链接失败。

一个失败的例子是Movits!专辑Äppelknyckarjazz(请注意,第一个由URI构造函数编码为%C3%84的字符)。由于客户端是GWT,因此视图源不显示链接:-(但是,将鼠标悬停在链接上时,Firefox会显示正确解码的URL。单击链接时,Firefox失败,并显示:“ ...Ãppelknyckarjazz.m3u似乎在使用不同的字符编码方案,但坦率地说,我的大脑在试图解开这一层的难题时受到了伤害。

因此,实际上有两个问题:

1)我的问题是编码方案问题吗?

2)假设是这样,在给定应用程序的各个部分(Java m3u生成器,GWT客户端,Firefox浏览器,Apache Web服务器)的情况下,如何保持一致性。

最佳答案

Ä可以编码为%C3%84(UTF8)或%C4(Latin1)。听起来您正在混合使用Latin11和UTF8。您需要确保所有系统都使用相同的编码。

在极少数情况下,您无法控制编码,请参阅我对这个问题的回答,

How to determine if a String contains invalid encoded characters

10-06 08:47