当表单作为多部分/表单数据发布时,UTF-8 文本出现乱码
2022-08-31 16:49:39
我正在将文件上传到服务器。文件上传 HTML 表单包含 2 个字段:
- 文件名 - 一个 HTML 文本框,用户可以在其中以任何语言命名。
- 文件上传 - 一个HTMl“文件”,用户可以在其中指定要从磁盘上传的文件。
提交表单后,将正确接收文件内容。但是,当读取文件名(上面的第 1 点)时,它会出现乱码。ASCII 字符正确显示。当名称以其他语言(德语,法语等)给出时,存在问题。
在 servlet 方法中,请求的字符编码设置为 UTF-8。我甚至尝试做一个过滤器,如上所述 - 我如何使这个代码提交一个带有jQuery / Ajax工作的UTF-8表单文本区域? - 但它似乎不起作用。只有文件名似乎是乱码。
文件名所在的 MySQL 表支持 UTF-8。我给出了随机的非英语字符,它们被正确存储/显示。
使用Fiddler,我监控了请求,并且所有POST数据都正确传递。我试图确定数据如何/在哪里出现乱码。任何帮助将不胜感激。