我应该如何在MySQL和FTP上存储Unicode文件路径?

时间:2015-03-03 17:07:11

标签: java url encoding utf-8

我编写了一个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

我怎样才能做到这一点?

0 个答案:

没有答案