get方法的URL在文件名(源)之前包含%E2%81%A9,为什么?

时间:2019-06-03 12:36:38

标签: java spring jsp tomcat

我尝试使用spring框架构建视频流服务器。

但是,总是发送这样的get方法

"http://localhost:8080/resources/%E2%81%A9mov_bbb.mp4" 

文件名为mov_bbb.mp4

这怎么发生的? 什么是%E2%81%A9?

@RequestMapping(value = "/streamView", method = RequestMethod.GET)

@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    File file = new File("/resources/mov_bbb.mp4");
    RandomAccessFile randomFile = new RandomAccessFile(file, "r");

2 个答案:

答案 0 :(得分:1)

%E2%81%A9代码为POP DIRECTIONAL ISOLATE或字符不可见(您看不到,因为可能不支持您的编辑器)。

在调用API时,您发送类似�mov_bbb.mp4 之类的内容给您。

reference of unicode

答案 1 :(得分:1)

对于U + 2069,这是3个字节,以UTF-8编码,这是Unicode方向控件,POP方向隔离。这可能是阿拉伯语/希伯来语文本输入的错误左侧。 它不可见,因此没有手动修剪,应该在软件中修剪。

还请注意:从右到左可能会被滥用以在文件名中隐藏文件扩展名,例如说.exe似乎以.jpg结尾。 (不是这种情况。)

该解决方案似乎重新编辑了路径/resources/mov_bbb.mp4。并检查该文件确实不包含不可见项。