Запись имени файла в каталог в utf-8 - PullRequest
0 голосов
/ 13 декабря 2011

У меня проблемы с загрузкой файлов и сохранением их имен файлов правильно в UTF-8 ... Я думаю, что я сделал все, как настройка кодировки и кодировки в форме HTML, а затем также request.setCharacterEncoding ("UTF8"), Я не уверен, почему до сих пор не работает.Мой код пишет в HTML и JSP.Не могли бы вы помочь?Большое спасибо

Я собираюсь добавить еще немного информации:

Эта строка - та, которую мне удалось заставить работать, но она не совсем верна, так как слово обрезаетсявыключается, когда появляется специальный символ.

saveFile = new String(saveFile.getBytes(), "UTF8");

Имя файла должно быть: tríptico .pdf, но результат будет tr

Ответы [ 3 ]

1 голос
/ 27 октября 2012

Является ли saveFile строкой?Почему вы так его переустанавливаете?Строка Java уже является Unicode, любое декодирование UTF8 должно произойти до того, как текст станет строкой Java.

1 голос
/ 27 октября 2012

Код, который вы написали, не может работать.

saveFile.getBytes() возвращает вам байты в кодировке, определенной file.encoding, а затем вы говорите Java: «предположим, что этот байтовый массив имеет формат UTF-8, и верните его обратно в строку». *

Итак, если file.encoding - это UTF-8, это ничего не делает, а если это что-то еще, это уничтожит вашу строку.

Здесь вам нужна правильная настройка file.encoding, и тогда вам не понадобятся эти дополнительные вещи.

0 голосов
/ 13 декабря 2011

Вы не должны сохранять имена файлов как есть в UTF-8, если базовая файловая система не поддерживает UTF-8. Вы должны получить имя файла, декодировать его в Unicode, а затем перекодировать в любой кодировку, которую фактически использует файловая система.

...