Такое сообщение выдается на нестандартные символы, например, «&», ‘ скрытые пробелы, некоторые тире и т.п.
Уберите из текста нестандартные символы.
Если не находите нестандартных символов, то рекомендуем текст сначала скопировать в блокнот Windows, сохранять текстовый файл в кодировке ANSI, и копировать в Excel-таблицу текст блокнота. Для большей верности, вставляйте текст в строку формул ячейки.
- 01 Государственное задание и отчет о его выполнении
- 01.1 Нормативные затраты
- 01.2 Формирование ГЗ
- 01.3 Отчет о выполнении ГЗ
- 02 ФО ГЗ, субсидии на ИЦ и публичные обязательства
- 02.1 Расчет субсидии на выполнение ГЗ
- 02.2 Расчет субсидии на иные цели и публичные обязательства
- 02.3 Стипендиальный фонд
- 03 Бюджетирование и планирование ФХД, текущее финансирование, ОРД
- 03.01 Бюджетирование и планирование ФХД
- 03.02 Отчет о результатах деятельности и об использовании имущества
- 03.03 Платные образовательные услуги (ПОУ)
- 03.04 Рейтинг качества финансового менеджмента
- 03.05 Сбор и обработка экономических показателей
- 04 Прочие вопросы
- 04.01 Отчет о публикационной активности
- 05 Архив
- Аналитический компонент комплексной системы управления финансами (АК КСУФ)
- АСУ ПФХД
- Государственное задание и отчет о его выполнении
- Затраты на повышение заработной платы до МРОТ
- Информационная система «Судебный мониторинг»
- Информационный портал «Поступай правильно»
- ИС сбора, обработки и аналитической оценки заявки на получение субсидий
- Мониторинг коммунальных услуг
- Мониторинг численности и оплаты труда работников учреждений
- Отчетность по НИР
- Перечень государственных услуг
- Предоставление субсидий на основные средства
- Программа повышения квалификации «Тьюторы»
- Сбор информации по выплатам руководителю
- Система управления НИР
- Текущее финансирование подведомственных организаций
- Форма Согласия налогоплательщика (плательщика страховых взносов) на признание сведений, составляющих налоговую тайну, общедоступными
- Формирование ПФХД на 2020 год и плановый период 2021 и 2022 годов
- Формирование финансового обеспечения государственного задания на НИР
- Методическая поддержка
- Техническая поддержка
Я загружаю txt файл на сервер, извлекаю из файла текст, пытаюсь сохранить этот текст в базу.
Я загружаю файл в кодировке windows-1251, при сохранении текста в базу возникает ошибка
SQLSTATE[HY000]: General error: 1366 Incorrect string value: ‘\xF0\xF3\xF1\xF1\xEA\xE8…’ for column ‘content’ at row 1
Я не совсем понимаю как вообще работать с разными кодировками.
Почему возникает ошибка? В utf-8 на символ выделяется 4 байта, в windows-1251 вроде точно меньше.
По задаче тексты могут быть на любом языке и в любой кодировке. Как можно это реализовать? Сделать поле content blob’ом?
Конвертация из одной кодировки в другую не вариант, так как кодировка текста всегда будет неизвестна.
-
Вопрос задан
-
235 просмотров
При подготовке в Excel товаров для импорта в интернет-магазин может возникнуть проблема с непониманием некоторыми CMS файла CSV, который формирует Excel (Файл — Сохранить как — CSV):
Появляются какие-то пробелы в конце текстовых строк, после чего конвертер Excel заключает текст в кавычки. Возникают многократные повторения текста с html-разметкой. Могут появиться проблемы с символами перевода строки (_x000D_/_x000A_). Имеют место глюки, если в процессе подготовки таблицы в результате работы формул у вас в пустых ячейках остались невидимые нулевые значения. Появляются другие непонятные символы ASCII, пустые строки в самом конце таблицы и т.д.
В результате админка магазина не распознает ни один из вариантов сохранения и отказывается принимать к импорту такой файл.
Решение:
- Сохраняем текущий лист таблицы в старом формате XLS (Книга Excel 97-2003).
- Открываем сохраненный файл в OpenOffice Calc.
- Сохраняем файл в CSV, кодировка Win-1251 (если у вас в описаниях нет Unicode-символов. При наличии таковых — проводим эксперименты с UTF-8, UTF-16 или KOI8-R), разделитель (;), разделитель текста («). Нижние чекбоксы пустые.
К слову, в российской версии Excel разделителем CSV является не запятая (comma), а как и положено, точка с запятой.
Изменить разделитель по умолчанию можно в настройках Windows. Для этого:
— проверяем в параметрах Excel, выбрано ли использование системного разделителя. Это Файл → Параметры → Дополнительно → Параметры редактирования → «использовать системные разделители». По умолчанию Excel настроен именно так.
— далее (для Windows 10) запускаем Панель управления (введите в поиск Windows «Панель управления»):
— выбираем Часы и регион → Региональные стандарты → Дополнительные параметры:
Проверяем разделитель, должен быть (;)
В картинке выше можно изменить разделитель целой и дробной части чисел — точка или запятая. Запятая, принятая в Excel по умолчанию, не всегда устраивает CMS и не воспринимается при импорте в 1С.
Статья о подготовке CSV https://habr.com/ru/company/mailru/blog/129476/
Post Views:
3 423
Сохранение файла в кодировке Windows-1251: Решение проблемы с FileSaver.js
В современном веб-разработке часто возникает необходимость сохранять данные в файл на компьютере пользователя. Для этого используются различные библиотеки и технологии, одна из которых — FileSaver.js. Однако, при использовании этой библиотеки часто встречается проблема сохранения файлов в неправильной кодировке. В этом случае, мы рассмотрим проблему сохранения файлов в кодировке Windows-1251 и найдем решение для этой проблемы.
Проблема сохранения файлов в кодировке Windows-1251
Используя библиотеку FileSaver.js, вы можете сохранять данные в файл на компьютере пользователя. Однако, по умолчанию, эта библиотека сохраняет файлы в кодировке UTF-8. Если вам необходимо сохранять файлы в кодировке Windows-1251, вы столкнетесь с проблемой. В итоге, когда вы указываете нужную кодировку в параметрах функции saveAs()
, она игнорируется, и файл все равно сохраняется в кодировке UTF-8.
Почему кодировка Windows-1251 не поддерживается FileSaver.js
FileSaver.js — это библиотека, которая использует функцию Blob
для создания файла на стороне клиента. Однако, функция Blob
не поддерживает кодировку Windows-1251. Вместо этого, она использует кодировку UTF-8 по умолчанию. Это означает, что даже если вы указываете кодировку Windows-1251 в параметрах функции saveAs()
, она все равно будет игнорироваться, и файл будет сохранен в кодировке UTF-8.
Решение проблемы: преобразование кодировки
Чтобы решить эту проблему, вы можете использовать функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. Функция TextEncoder
позволяет преобразовать строку в байты в заданной кодировке. В этом случае, вы можете использовать функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251.
Пример кода
Ниже приведен пример кода, который демонстрирует, как использовать функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251:
// Создаем функцию для преобразования кодировки function encodeWindows1251(str) { const encoder = new TextEncoder('windows-1251'); const encodedStr = encoder.encode(str); return encodedStr; }
// Создаем функцию для сохранения файла function saveFile(data, filename) const encodedData = encodeWindows1251(data); const blob = new Blob([encodedData], { type); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = filename; link.click(); }
// Используем функцию для сохранения файла const data = 'Тестовый текст'; const filename = 'тестовый_файл.txt'; saveFile(data, filename);
Вывод
В этом случае, мы рассмотрели проблему сохранения файлов в кодировке Windows-1251 с помощью библиотеки FileSaver.js. Мы нашли решение этой проблемы, используя функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. Пример кода демонстрирует, как использовать эту функцию для сохранения файла в кодировке Windows-1251.
Советы и рекомендации
- Если вы столкнетесь с проблемой сохранения файлов в кодировке Windows-1251, попробуйте использовать функцию
TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. - Убедитесь, что вы указываете правильную кодировку в параметрах функции
saveAs()
. - Если вы используете библиотеку FileSaver.js, убедитесь, что вы используете последнюю версию библиотеки.
Ссылки на дополнительную информацию
- FileSaver.js
- TextEncoder
- Windows-1251
Сохранение файла в кодировке Windows-1251: Вопросы и ответы
В предыдущем разделе мы рассмотрели проблему сохранения файлов в кодировке Windows-1251 с помощью библиотеки FileSaver.js и нашли решение этой проблемы, используя функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. В этом разделе мы ответим на часто задаваемые вопросы по теме сохранения файлов в кодировке Windows-1251.
Вопрос 1: Почему FileSaver.js не поддерживает кодировку Windows-1251?
Ответ: FileSaver.js — это библиотека, которая использует функцию Blob
для создания файла на стороне клиента. Однако, функция Blob
не поддерживает кодировку Windows-1251. Вместо этого, она использует кодировку UTF-8 по умолчанию.
Вопрос 2: Как преобразовать кодировку UTF-8 в кодировку Windows-1251?
Ответ: Для преобразования кодировки UTF-8 в кодировку Windows-1251 вы можете использовать функцию TextEncoder
. Функция TextEncoder
позволяет преобразовать строку в байты в заданной кодировке.
Вопрос 3: Как использовать функцию TextEncoder
для преобразования кодировки?
Ответ: Чтобы использовать функцию TextEncoder
для преобразования кодировки, вы можете создать экземпляр класса TextEncoder
с параметром windows-1251
и использовать метод encode()
для преобразования строки в байты в кодировке Windows-1251.
Вопрос 4: Как сохранить файл в кодировке Windows-1251 с помощью FileSaver.js?
Ответ: Чтобы сохранить файл в кодировке Windows-1251 с помощью FileSaver.js, вы можете использовать функцию saveAs()
и указать кодировку Windows-1251 в параметрах функции. Однако, по умолчанию, FileSaver.js сохраняет файлы в кодировке UTF-8, поэтому вы должны использовать функцию TextEncoder
для преобразования кодировки.
Вопрос 5: Как решить проблему сохранения файлов в кодировке Windows-1251?
Ответ: Чтобы решить проблему сохранения файлов в кодировке Windows-1251, вы можете использовать функцию TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. Это позволит вам сохранять файлы в кодировке Windows-1251 с помощью FileSaver.js.
Вопрос 6: Какие другие библиотеки поддерживают кодировку Windows-1251?
Ответ: Некоторые другие библиотеки, которые поддерживают кодировку Windows-1251, включают в себя:
js-file-saver
: эта библиотека поддерживает кодировку Windows-1251 и позволяет сохранять файлы в этой кодировке.file-saver-plus
: эта библиотека также поддерживает кодировку Windows-1251 и позволяет сохранять файлы в этой кодировке.
Вопрос 7: Какие советы и рекомендации можно дать по теме сохранения файлов в кодировке Windows-1251?
Ответ: Некоторые советы и рекомендации по теме сохранения файлов в кодировке Windows-1251 включают в себя:
- Используйте функцию
TextEncoder
для преобразования кодировки UTF-8 в кодировку Windows-1251. - Убедитесь, что вы указываете правильную кодировку в параметрах функции
saveAs()
. - Используйте последнюю версию библиотеки FileSaver.js.
Вопрос 8: Какие ресурсы можно использовать для дополнительной информации по теме сохранения файлов в кодировке Windows-1251?
Ответ: Некоторые ресурсы, которые можно использовать для дополнительной информации по теме сохранения файлов в кодировке Windows-1251, включают в себя:
- FileSaver.js
- TextEncoder
- Windows-1251
- Автор темы
-
#1
Хочу сохранить файл в кодировке windows-1251, сохраняется все время в UTF-8.
Если просто iconv’ом конвертнуть то что записывается в файл, сохраняется в 1251, но отображается кракозябрами.
-
#2
Крокозяблы где, в файле или браузере?
- Автор темы
-
#3
В браузере я не проверял (мне это не надо), кракозябры в файле.
-
#4
Если крякозяблы в файле, то это не ср1251
- Автор темы
-
#5
Вообще да, всегда в utf-8 сохраняется. Как мне в 1251 перевести?
-
#6
ХЗ, я только что поробовал
PHP:
<?php
$a = 'тест';
$a = iconv('utf-8', 'windows-1251', $a);
file_put_contents('/srv/www/test/htdocs/test.txt', $a);
?>
всё работает.
-
#7
Ещё как вариант скачать текст. редактор аля notepad++ там можно менять кодировку.
-
#8
ТС, под какой системой просматриваешь файл?
- Автор темы
-
#9
Все работает, iconv не правильно юзал
-
#10
Ещё как вариант скачать текст. редактор аля notepad++ там можно менять кодировку.
Шикарный совет