Проблема с кодировкой при сохранении строки в файл.
Andrey 30.09.2021 15:09
Приветствую уважаемое общество! Столкнулся с проблемой следующего характера: формирую xml-файл УПД для передачи через ЭДО, сохраняю его на диск командой
^str_file_complete_tained.save[/${upd_file_name}.xml;$.charset[windows-1251]]
скармливаю этот документ для проверки сюда https://www.diadoc.ru/docs/forms/validation-xml
получаю сообщение: «Неверная кодировка файла Загрузите файл с кодировкой windows-1251» подскажите пожалуйста в чем может быть проблема
- Проблема с кодировкой при сохранении строки в файл., Andrey 30.09.2021 15:09
- Спасибо. Вопрос снят, решил другим путем. (-), Andrey 30.09.2021 16:59
- И никому не скажете?, G_Z [M] 30.09.2021 22:52 / 01.10.2021 14:44
- Конечно скажу., Andrey 01.10.2021 00:11
- И никому не скажете?, G_Z [M] 30.09.2021 22:52 / 01.10.2021 14:44
- Спасибо. Вопрос снят, решил другим путем. (-), Andrey 30.09.2021 16:59
Кодировка текста – это схема нумерации символов, в которой каждому символу, цифре или знаку присвоено соответствующее число. Кодировку используют для сохранения и обработки текста на компьютере. Каждый раз при сохранении текста в файл он сохраняется с использованием определенной схемы кодирования, и при открытии этого файла необходимо использовать такую же схему, иначе восстановить исходный текст не получится. Самыми популярными кодировками для кириллицы сейчас являются UTF-8, Windows-1251 (CP1251, ANSI).
Для того чтобы программа смогла правильно открыть текстовый файл, иногда приходится вручную менять кодировку, перекодируя текст из одной схемы в другую. Например, не редко возникают проблемы с открытием файлов CSV, XML, SQL, TXT, PHP.
В этой небольшой статье мы расскажем о том, как изменить кодировку текстового файла на UTF-8, Windows-1251 или любую другую.
Блокнот Windows
Если вы используете операционную систему Windows 10 или Windows 11, то вы можете изменить кодировку текста с помощью стандартной программы Блокнот. Для этого нужно открыть текстовый файл с помощью Блокнота и воспользоваться меню «Файл – Сохранить как».
В открывшемся окне нужно указать новое название для файла, выбрать подходящую кодировку и нажать на кнопку «Сохранить».
К сожалению, для подобных задач программа Блокнот часто не подходит. С ее помощью нельзя открывать документы большого размера, и она не поддерживает многие кодировки. Например, с помощью Блокнота нельзя открыть текстовые файлы в DOS 866.
Notepad++
Notepad++ (скачать) является одним из наиболее продвинутых текстовых редакторов. Он обладает подсветкой синтаксиса языков программирования, позволяет выполнять поиск и замену по регулярным выражениям, отслеживать изменения в файлах, записывать и воспроизводить макросы, считать хеш-сумы и многое другое. Одной из основных функций Notepad++ является поддержка большого количества кодировок текста и возможность изменения кодировки текстового файла в UTF-8 или Windows 1251.
Для того чтобы изменить кодировку текста с помощью Notepad++ файл нужно открыть в данной программе. Если программа не смогла правильно определить схему кодирования текста, то это можно сделать вручную. Для этого нужно открыть меню «Кодировки – Кириллица» и выбрать нужный вариант.
После открытия текста можно изменить его кодировку. Для этого нужно открыть меню «Кодировки» и выбрать один из вариантов преобразования. Notepad++ позволяет изменить текущую кодировку текста на ANSI (Windows-1251), UTF-8, UTF-8 BOM, UTF-8 BE BOM, UTF-8 LE BOM.
После преобразования файл нужно сохранить с помощью меню «Файл – Сохранить» или комбинации клавиш Ctrl-S.
Akelpad
Akelpad (скачать) – достаточно старая программа для работы с текстовыми файлами, которая все еще актуальна и может быть полезной. Фактически Akelpad является более продвинутой версией стандартной программы Блокнот из Windows. С его помощью можно открывать текстовые файлы большого размера, которые не открываются в Блокноте, выполнять поиск и замену с использованием регулярных выражений и менять кодировку текста.
Для того чтобы изменить кодировку текста с помощью Akelpad файл нужно открыть в данной программе. Если после открытия файла текст не читается, то нужно воспользоваться меню «Файл – Открыть».
В открывшемся окне нужно выделить текстовый файл, снять отметку «Автовыбор» и выбрать подходящую кодировку из списка. При этом в нижней части окна можно видеть, как будет отображаться текст.
Для того чтобы изменить текущую кодировку текста нужно воспользоваться меню «Файл – Сохранить как» и сохранить документ с указанием новой схемы кодирования.
В отличие от Notepad++, текстовый редактор Akelpad позволяет сохранить файл в практически любой кодировке. В частности, доступны Windows 1251, DOS 886, UTF-8 и многие другие.
Посмотрите также:
- Чем открыть PDF файл в Windows 7 или Windows 10
- Как перевернуть страницу в Word
- Как копировать текст с помощью клавиатуры
- Как сделать рамку в Word
- Как сделать буклет в Word
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
Сообщение от ТабуретY
нужно попробовать отправить строку полученную отсюда
JavascriptВыделить код
1
reader.readAsText(file, ‘CP1251’);
Попробовал
JavaScript | ||
|
потом так
JavaScript | ||
|
Открываю файл в VS Code — его кодировка UTF-8, все символы считываются нормально
Так что скорее всего строка, полученная из reader.readAsText(…) уже преобразуется в юникод
Добавлено через 2 минуты
windows1251.encode естественно тоже не помог)
Добавлено через 2 часа 15 минут
ТабуретY,
Вот рабочий пример для слова «привет»
JavaScript | ||
|
Плюс такая деталь, что например
JavaScript | ||
|
Не работает
Но при этом файл со словом «привет» в нужной мне кодировке сохраняется
Добавлено через 6 минут
И вот функция декодирования
JavaScript | ||
|
Только cp1251 = ‘ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬*®Ї°±Ііґµ¶·\
ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ абвгдежзийклмнопрстуфхцчшщъыьэюя’; (в коде немного неправильно отображается)
Осталось дело за малым, сделать обратную функцию)
Добавлено через 9 минут
точнее, функция такая, та — только один символ декодирует
JavaScript | ||
|
Только cp1251 = ‘ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬*®Ї°±Ііґµ¶·\
ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ абвгдежзийклмнопрстуфхцчшщъыьэюя’; (в коде немного неправильно отображается)
Осталось дело за малым, сделать обратную функцию)
Рассмотрим в данной инструкции, что делать, если Вы открыли или загружаете файл, а там «каракули»?
Файл с неверной кодировкой выглядит примерно так (рис.1):
Рисунок 1.
Причина этому неверная кодировка, поэтому кодировку файла надо изменить. Для этого нам понадобится перейти на сайт Notepad++ и скачать последнюю актуальную версию программы. На текущий момент актуальная версия 8.1.4, скачиваем программу и устанавливаем (рис.2).
Рисунок 2.
Далее кликом правой клавиши мыши откройте Ваш файл через Notepad++ и через меню «Кодировки»- «Преобразовать в UTF-8» или «Encoding» -«Convert to UTF-8» преобразуйте кодировку файла, далее сохраните файл (рис. 3.).
Рисунок 3.
Готово. Мы рассмотрели, что делать, если Ваш файл имеет неверную кодировку.
Тэги: Что делать если в текстовом файле не верная кодировка (каракули), неверная кодировка, кодировка, каракули, иероглифы, csv, файл, эксель, excel, ошибка