我编写了一个Web应用程序,来自世界各地的用户可以上传文件。这些可能是不同的字符编码。出于这个原因,我已经用UTF-8定义了我的MySQL数据库,因此它可以正确呈现所有特殊字符。
但是,当用户尝试访问文件时,Web浏览器会发现无法找到它,并且编码结果很奇怪。我尝试了一些不同的编码方法(例如URLEncoder / Decoder),但仍有一些用例无法工作。
我想知道Dropbox,Google等是如何解决这个编码问题的。
test+test%C3%BC.txt
之类的形式保存字符串? 123890123.file
)存储?我也想知道URLEncoder是否是让事情发挥作用的最佳方法。例如,它用+
而不是%20
替换空格 - 如果没有浏览器可以为空格处理加号,为什么会这样做呢?
我需要保持基本URL不变,并且只编码文件名。
例如,
www.example.com/folder/blä äh.txt
应编码为
www.example.com/folder/bl%..+%...txt
我怎样才能做到这一点?