Не знаю, действительно ли это ошибка, но я с ней сталкивался.
Появилось, когда я использовал HttpPostRequestDecoder, чтобы помочь мне принять файл, загруженный по HTTP.
Когда имя файла все буквы sh Engli * или цифры , все в порядке; Но как только имя файла содержит китайский, корейский, японский и другие не-английский sh символы , возникает ошибка " ErrorDataDecoderException ".
Я проверил долгое время и, наконец, посмотрел на исходный код и обнаружил, что когда имя файла содержит другие языки, часть тела контента выглядит так:
Content-Disposition: form-data; name = "file"; filename = "c73b1345ab18deeef6cdb220d62fc976我是汉字.jpg"; filename* = "UTF-8''c73b1345ab18deeef6cdb220d62fc976%E6%88%91%E6%98%AF%E6%B1%89%E5%AD%97.jpg"
Когда это чистый английский sh часть, тело контента:
Content-Disposition: form-data; name = "file"; filename = "6e3f8201c976de67aae094c72634f75e.jpg"
Очевидно, что они не совпадают, поэтому, когда я заменил его на разделение по линиям, все работало нормально (это новый класс, который я написал сам) .
Так что Нетти использует ';' для разделения содержимого тела? Это приводит к этой ошибке. Если нет, то как возникла эта ошибка?