我编写了一个 Java 程序来生成基于从 k3b 翻录的 CD 的 m3u 文件,该文件几乎保留了艺术家、专辑和轨道名称中的特殊字符编码。然后,我将这些 m3u 文件放在服务器上并生成一个 GWT Web 应用程序,其中 m3u 文件名是 HTML anchor 标记的目标。对于 99% 以上的情况,这一切都很完美。在某些情况下,特殊字符会导致链接失败。
Movits就是一个失败的例子!专辑 Äppelknyckarjazz (请注意第一个字符由 URI 构造函数编码为 %C3%84)。由于客户端是 GWT,查看源代码不会显示链接,:-( 但是当鼠标悬停在链接上时,Firefox 显示正确解码的 URL。单击链接时,Firefox 会失败并显示:“...àppelknyckarjazz.m3u was在此服务器上找不到”这就好像不同的字符编码方案正在发挥作用,但坦率地说,在试图解开这个级别的谜题时,我的大脑正在受伤。
所以确实有两个问题:
1)我的问题是编码方案问题吗?
2) 假设是这样,考虑到应用程序的各个部分(Java m3u 生成器、GWT 客户端、Firefox 浏览器、Apache Web 服务器),我如何保持一致性。
最佳答案
String result = java.net.URLEncoder.encode("Äppelknyckarjazz", "UTF-8");
我认为这对您来说是一个解决方案。
关于java - 使用 Java 处理 URL 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1450973/