Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не обрабатываются кириллические символы (https://javascript.ru/forum/misc/85153-ne-obrabatyvayutsya-kirillicheskie-simvoly.html)

max74max 23.04.2023 06:18

Не обрабатываются кириллические символы
 
Здравствуйте. Помогите, пожалуйста разобраться.
Есть форма для загрузки файлов на сервер. Она работает и загружает файлы как нужно, но если в имени файла будут кириллические символы, то загрузка файла не происходит.
В консоли пишет:
Uncaught TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point.
    at reader.onload (upload.js:330:25)


И в «Источники» подчеркивает строку xhr.setRequestHeader("X-File-Name", blob.name);
Пробовал сделать так: xhr.setRequestHeader(encodeURIComponent("X-File-Name", blob.name));
Не помогло.

Nexus 23.04.2023 19:31

Цитата:

Сообщение от max74max
Пробовал сделать так: xhr.setRequestHeader(encodeURIComponent("X-File-Name", blob.name));

Если вы именно так пробовали, то у вас тут ошибка есть.
setRequestHeader принимает 2 аргумента, encodeURIComponent - 1 аргумент. У вас наоборот.

max74max 24.04.2023 02:30

Цитата:

Сообщение от Nexus (Сообщение 551637)
Если вы именно так пробовали, то у вас тут ошибка есть.
setRequestHeader принимает 2 аргумента, encodeURIComponent - 1 аргумент. У вас наоборот.

Спасибо, это помогло.

Код:

xhr.setRequestHeader("X-File-Name", encodeURIComponent(blob.name));
Теперь файлы с кириллическими символами загружаются.
Но только с такими названиями %D1%82%D0%B5%D1%81%
А как сделать чтобы вместо этого были обычные буквы?

max74max 24.04.2023 02:52

Хотя, я могу это сделать в php с помощью urldecode. Спасибо за помощь)


Часовой пояс GMT +3, время: 01:27.