Cbynarydata ошибка кодирования декодирования 1c linux
У меня есть rar-файл. После извлечения он генерирует файл с китайским именем, который показан в Nautilus как:
ѧ. . ѧ .2008.djvu (неверная кодировка)
В терминале это показано как:
Содержимое rar-файла, указанного в unrar, является correct:
$ unrar l 近代组合学.王天明.大连理工大学出版 社.2008.rar UNRAR 3.93 freeware Copyright (c) 1993-2010 Alexander Roshal Archive 近代组合学.王天明.大连理工大学出版社.2008.rar Name Size Packed Ratio Date Time Attr CRC Meth Ver ------------------------------------------------------------------------------- 近代组合学.王天明.大连理工大学出版社.2008.djvu 6190416 6187189 99% 03-06-11 10:33 . A. 98320D40 m3g 2.9 ------------------------------------------------------------------------------- 1 6190416 6187189 99%
Файл не может быть открыт, если я не изменю его имя на что-то вроде 1.djvu.
Мне было интересно, почему персонажи не отображаются правильно с китайским именем сжатого файла, в то время как я могу создать каталог или файл с китайским именем?
Как мне это сделать?
Спасибо и привет!
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Благодаря! Это решает проблему. Но как я могу заставить GUI распознавать китайские кодировки? – Tim 11 June 2011 в 01:54Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
Откройте терминал. Перейдите в каталог, содержащий файл: cd /path/to/directory/ Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если имеется несколько вариантов. Запустите программу unrar для распаковки filename.rar: unrar x filename.rar Здесь вы можете использовать также заполнение табуляции для имени файла. Содержимое архива будет видно в текущем каталоге.
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
- Откройте терминал .
- Перейдите в каталог, содержащий файл: cd / path / to / directory / Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если есть несколько вариантов.
- Запустите программу unrar , чтобы распаковать filename.rar : unrar x filename.rar Здесь вы можете использовать для заполнения имени вкладки.
- Содержимое архива будет отображаться в текущем каталоге. [ ! d9]
Возможно, программа графического архива не понимает китайский язык. Попробуйте извлечь архив с помощью командной строки:
- Откройте терминал .
- Перейдите в каталог, содержащий файл: cd / path / to / directory / Вы можете использовать клавишу Tab для завершения имен файлов и имен каталогов. Дважды нажмите «Tab», чтобы получить список возможных завершений в случае, если есть несколько вариантов.
- Запустите программу unrar , чтобы распаковать filename.rar : unrar x filename.rar Здесь вы можете использовать для заполнения имени вкладки.
- Содержимое архива будет отображаться в текущем каталоге. [ ! d9]
Похоже, что имя файла создает другую кодировку символов, чем ваша среда. Символ ѧ (CYRILLIC SMALL LETTER LITTLE YUS), скорее всего, не является частью китайского имени файла.
Есть ли у вас информация об операционной системе и языковых настройках, в которой был создан файл? Вы знаете, какие кодировки символов являются общими для кодирования китайских имен файлов?
Если вы знаете кодировку имен файлов, вы можете использовать convmv (не установленный по умолчанию), чтобы преобразовать его в используемую вами кодировку (скорее всего, UTF- 8).
Благодаря! Я предполагаю, что он был создан в Windows. Из Википедии китайскими кодировками являются китайский Guobiao: GB 2312, GBK (код Microsoft 936) и GB 18030. – Tim 11 June 2011 в 01:48Оказалось, что по умолчанию версия с открытым исходным кодом rar & amp; Утилиты unrar установлены в Ubuntu: «unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers».
После переустановки unrar фактическая версия его установлена из репозитория «ограниченного» (проприетарного программного обеспечения) (обратите внимание, что это должно быть включено в настройках вашего обновления ): «UNRAR 5.40 freeware Copyright (c) 1993-2016 Александр Рошаль»
Эта версия обрабатывает символы Unicode, по крайней мере, она работала для меня с кириллическими буквами.
Обратите внимание, что удаление open исходная версия rar / unrar также устранила проблему с программным обеспечением GUI:
unrar --enable-charset x $1
Похоже, что имя файла создает другую кодировку символов, чем ваша среда. Символ ѧ (CYRILLIC SMALL LETTER LITTLE YUS), скорее всего, не является частью китайского имени файла.
Есть ли у вас информация об операционной системе и языковых настройках, в которой был создан файл? Вы знаете, какие кодировки символов являются общими для кодирования китайских имен файлов?
Если вы знаете кодировку имен файлов, вы можете использовать convmv (не установленный по умолчанию), чтобы преобразовать его в используемую вами кодировку (скорее всего, UTF- 8).
Благодаря! Я предполагаю, что он был создан в Windows. Из Википедии китайскими кодировками являются китайский Guobiao: GB 2312, GBK (код Microsoft 936) и GB 18030. – Tim 11 June 2011 в 01:48$ sudo apt-get remove rar $ sudo apt-get remove unrar $ sudo apt-get install unrar
Оказалось, что по умолчанию версия с открытым исходным кодом rar & amp; Утилиты unrar установлены в Ubuntu: «unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers».
После переустановки unrar фактическая версия его установлена из репозитория «ограниченного» (проприетарного программного обеспечения) (обратите внимание, что это должно быть включено в настройках вашего обновления ): «UNRAR 5.40 freeware Copyright (c) 1993-2016 Александр Рошаль»
Эта версия обрабатывает символы Unicode, по крайней мере, она работала для меня с кириллическими буквами.
Обратите внимание, что удаление open исходная версия rar / unrar также устранила проблему с программным обеспечением GUI:
unrar --enable-charset x $1
Похоже, что имя файла создает другую кодировку символов, чем ваша среда. Символ ѧ (CYRILLIC SMALL LETTER LITTLE YUS), скорее всего, не является частью китайского имени файла.
Есть ли у вас информация об операционной системе и языковых настройках, в которой был создан файл? Вы знаете, какие кодировки символов являются общими для кодирования китайских имен файлов?
Если вы знаете кодировку имен файлов, вы можете использовать convmv (не установленный по умолчанию), чтобы преобразовать его в используемую вами кодировку (скорее всего, UTF- 8).
Благодаря! Я предполагаю, что он был создан в Windows. Из Википедии китайскими кодировками являются китайский Guobiao: GB 2312, GBK (код Microsoft 936) и GB 18030. – Tim 11 June 2011 в 01:48$ sudo apt-get remove rar $ sudo apt-get remove unrar $ sudo apt-get install unrar
Оказалось, что по умолчанию версия с открытым исходным кодом rar & amp; Утилиты unrar установлены в Ubuntu: «unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers».
После переустановки unrar фактическая версия его установлена из репозитория «ограниченного» (проприетарного программного обеспечения) (обратите внимание, что это должно быть включено в настройках вашего обновления ): «UNRAR 5.40 freeware Copyright (c) 1993-2016 Александр Рошаль»
Эта версия обрабатывает символы Unicode, по крайней мере, она работала для меня с кириллическими буквами.
Обратите внимание, что удаление open исходная версия rar / unrar также устранила проблему с программным обеспечением GUI:
unrar --enable-charset x $1
Похоже, что имя файла создает другую кодировку символов, чем ваша среда. Символ ѧ (CYRILLIC SMALL LETTER LITTLE YUS), скорее всего, не является частью китайского имени файла.
Есть ли у вас информация об операционной системе и языковых настройках, в которой был создан файл? Вы знаете, какие кодировки символов являются общими для кодирования китайских имен файлов?
Если вы знаете кодировку имен файлов, вы можете использовать convmv (не установленный по умолчанию), чтобы преобразовать его в используемую вами кодировку (скорее всего, UTF- 8).
Благодаря! Я предполагаю, что он был создан в Windows. Из Википедии китайскими кодировками являются китайский Guobiao: GB 2312, GBK (код Microsoft 936) и GB 18030. – Tim 11 June 2011 в 01:48$ sudo apt-get remove rar $ sudo apt-get remove unrar $ sudo apt-get install unrar
Оказалось, что по умолчанию версия с открытым исходным кодом rar & amp; Утилиты unrar установлены в Ubuntu: «unrar 0.0.1 Copyright (C) 2004 Ben Asselstine, Jeroen Dekkers».
После переустановки unrar фактическая версия его установлена из репозитория «ограниченного» (проприетарного программного обеспечения) (обратите внимание, что это должно быть включено в настройках вашего обновления ): «UNRAR 5.40 freeware Copyright (c) 1993-2016 Александр Рошаль»
Эта версия обрабатывает символы Unicode, по крайней мере, она работала для меня с кириллическими буквами.
Обратите внимание, что удаление open исходная версия rar / unrar также устранила проблему с программным обеспечением GUI:
unrar --enable-charset x $1
Похоже, что имя файла создает другую кодировку символов, чем ваша среда. Символ ѧ (CYRILLIC SMALL LETTER LITTLE YUS), скорее всего, не является частью китайского имени файла.
Есть ли у вас информация об операционной системе и языковых настройках, в которой был создан файл? Вы знаете, какие кодировки символов являются общими для кодирования китайских имен файлов?
Если вы знаете кодировку имен файлов, вы можете использовать convmv (не установленный по умолчанию), чтобы преобразовать его в используемую вами кодировку (скорее всего, UTF- 8).
Благодаря! Я предполагаю, что он был создан в Windows. Из Википедии китайскими кодировками являются китайский Guobiao: GB 2312, GBK (код Microsoft 936) и GB 18030. – Tim 11 June 2011 в 01:48$ sudo apt-get remove rar $ sudo apt-get remove unrar $ sudo apt-get install unrar
оказалось, что по умолчанию с открытым исходным кодом версия rar & [F4] и коммунальных услуг устанавливается в Ubuntu: "распаковка 0.0.1 Авторское право (C) 2004 Бен Asselstine, Йерун Деккерс". Эта версия не обрабатывает не-ASCII символы.
после переустановки unrar актуальная версия он установлен с "ограниченным" (проприетарное программное обеспечение) репозиторий (обратите внимание, что это должно быть включено в обновление настройки): "распаковка 5.40 бесплатные программы Авторское право (C) 1993-2016 Александр Рошаль"
эта версия обрабатывает символы в кодировке Юникод, по крайней мере, это сработало для меня с русскими буквами.
обратите внимание, что удаление открытым исходным кодом варианте rar/unrar на, также Исправлена ошибка с графическим программным обеспечением:
1с Тонкий клиент linux
1c thin-client или 1с тонкий клиент. Устанавливаем в Debian 10 и в дистрибутивах на его основе, использующие deb пакеты.
Уже не первый раз приходится обновлять тонкий клиент 1с на новую версию. Если в операционной системе windows это все сводится к простому нажатию Далее, Далее и ОК, то в системах Linux как правило возникают нюансы.
Порядок установки 1c тонкого клиента
Для установки тонкого клиента в системах Linux использующих deb пакеты как правило необходимо установить два пакета.
Первым ставим пакет самого клиента, а затем ставим языковый пакет. Пакет содержащий переводы, языки отличные от английского.
Хочу напомнить, если вы используете debin 10, то для установки пакета используйте командную строку
команда будет выглядеть так
Если будете устанавливать с помощью приложения GDebi, то вначале запустите его, а потом из его меню выберите пакет для установки.
Для этого выберите пункт файл, затем открыть и в открывшемся окне выберите нужный пакет.
Распространенная ошибка с пакетом libwebkitgtk в 1с
Как правило многие столкнутся с ошибкой в зависимостях с пакетом libwebkitgtk на момент написания статьи его версия 3.0 и полное го название libwebkitgtk-3.0
Последняя цифра это, как уже догадались, его версия.
Ошибка выглядит так
Соответственно, чтоб решить эту проблему нужно добавить репозиторий с этим пакетом и установить его.
Первый вариант
Подойдет для дистрибутивов Ubuntu и Mint
Подключаем репозиторий с этим пакетом, для этого в терминале откроем sources.list идобавим его туда.
Открываем файл sources.list командой в терминале, с помощью редактора nano
В конец добавляем строчку нашего репозитория
Выглядеть это будет так
Затем сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl+x
Далее традиционно обновляемся
Ну и затем ставим пакет
Просто откройте снова его через терминал в редакторе nano
Не забудьте сохранить файл сочетанием клавиш Ctrl+O и закрываем Ctrl+x
Далее ставим наш клиент 1с, ошибок не должно быть, не забываем про пакет с поддержкой языков.
Вариант второй для Debian 10
Если у вас Debian 10 то добавьте в список репозиториев репозиторий stretch.
Откройте файл репозиториев в терминале при помощи редактора nano
Добавьте в конец репозиторий
Не забываем после изменений сохранить Ctrl+O и закрыть Ctrl+x
Далее традиционно обновимся
sudo apt update
Теперь поставим, недостающий пакет именно из того репозитория который указали
После ставим наш пакет 1с с тонким клиентом и его языковый пакет.
Ошибки со шрифтом 1с
Как правило после установки тонкого клиента многим не нравится шрифт.
Иногда не корректно отображается шрифт.
Для решения этих вопросов необходимо до установить пакеты с нужными шрифтами.
Порядок установки и их название описаны в статье по первоначальным настройкам debian и настройкам debian10.
Многие организации используют в программе дополнительный сервис 1С-Отчетность . С помощью него они обмениваются отчетами и прочим электронным документооборотом с контролирующими органами непосредственно из 1С без использования сторонних программ, что очень удобно. Но усложнение программы, как всегда бывает, приводит к новым ошибкам, с которыми нужно уметь справляться.
Прочитав статью, вы:
- Получите важную информацию на 2019 год от оператора 1С-Отчетность Калуга Астрал .
- Узнаете, какие ошибки возникают при обмене электронного документооборота.
- Изучите рекомендации по исправлению ошибок, полученных при попытке расшифровать файл. Это самая распространенная ошибка в 1С-Отчетности .
Ошибка расшифровки файла
Список возможных ошибок 1С-Отчетности можно посмотреть здесь. PDF
- Не расшифровано.
- Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.
22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.
Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.
Возникновение ошибок
Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.
Обновление криптопровайдеров
Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.
Пошаговая инструкция по обновлению криптопровайдера
Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP .
Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.
Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:
- сдаете отчетность в ПФР Москвы и Московской области;
- версия вашего криптопровайдера VipNet ниже 4.2.
Другие причины возникновения ошибок
Проверка версии криптопровайдера
Обновление 1С
Второе не менее важное правило: перед глубоким погружением в проблему выполните две несложных проверки в1С:
- проверьте на актуальность релиз вашей 1С;
- уточните права пользователя, отправляющего отчетность.
Отправка отчетности всегда должна выполняться на актуальной версии 1С. Проверьте текущий релиз вашей программы на сайте поддержки пользователей и обновите конфигурацию, если установленный релиз вашей программы не актуальный.
Разработчики вносят изменения в 1С, подключают новые модули, поэтому соответствие релиза программы актуальному перед отправкой отчетности необходимое условие успешной сдачи отчетности.
Права пользователя, отправляющего отчетность
Пользователи, работающие с 1С-Отчетность , должны иметь права:
- Право на защищенный документооборот с контролирующими органами;
- Полные права.
Если с отчетностью работает пользователь не с полными правами, ему необходимо добавить право на защищенный документооборот, например, в Конфигураторе : меню Администрирование — Пользователи на вкладке Прочее .
Если работать с отчетностью стал новый пользователь и у него стала выходить ошибка, а у прежнего пользователя все было нормально — дело, скорее всего. в правах нового пользователя.
Если проверки выполнены, а ошибка осталась — переходите к поиску решения проблемы с помощью:
- технической поддержки Калуга-Астрал;
- самостоятельной настройки криптографии.
Техническая поддержка Калуга-Астрал
Корректность шифровки передаваемого файла сначала проверяет оператор, т.е. компания Калуга-Астрал, после успешной проверки оператором файлы отсылаются непосредственному адресату получения, например, в ПФР.
При возникновении проблем с передачей отчетности, в том числе по расшифровке переданного файла, можно перезвонить непосредственно оператору Калуга-Астрал и попросить помощи:
Техническая поддержка компании работает круглосуточно и успешно устраняет проблемы, связанные с передачей файлов по сервису 1 С-Отчетность , удаленно подключаясь к компьютеру пользователя.
Дозвониться до оператора совсем несложно, в отличие от горячей линии 1С, и работа по решению проблем оператором выполняется без задержек — в момент обращения.
Обратиться в техподдержку Калуга-Астрал один из самых простых вариантов решить проблемы. Работа выполняется профессионально и бесплатно в рамках приобретенного сервиса 1С:Отчетность .
На сайте оператора собраны все возможные ошибки и пути их устранения. Это настоящая библиотека «скорой помощи» пользователю. Мы очень рекомендуем в нее заглядывать:
Настройка криптографии
Поскольку проблема носит чисто технический характер и может быть вызвана множеством причин, рассмотреть которые в одной статье очень сложно, мы дадим в этой части статьи:
- свои экспертные рекомендации, которые помогали нам решить проблему у наших клиентов;
- общий список рекомендации 1С, включающий работу с ОС и 1С одновременно.
Рекомендации Бухэксперт8
Если все технические рекомендации, указанные выше, выполнены, переходим к проверке состояния файлов сертификатов и их настроек в учетной записи документооборота 1С.
Как зайти в настройки учетной записи документооборота?
В разных конфигурациях откройте вкладку Список заявлений : справочник Организации — ЭДО — Список заявлений .
Откройте список заявлений и проверьте, чтобы не было «красноты».
Перейдите на вкладку Служебная информация , откройте графу Учетная запись — результат и выполните команду Открыть (щелкнув мышкой по двум квадратикам).
В открывшемся окне можно:
- проверить параметры настройки;
- обновить сертификаты контролирующих органов по нажатию кнопки Настроить автоматически сейчас ;
- проверить параметры доступа к серверу;
- проверить цифровые сертификаты ответственных лиц организации;
- выбрать пользователей системы 1С, которым будет предоставлен доступ к сервису 1С-Отчетность .
После выполнения каждой инструкции нажимайте кнопки Обменяться и Расшифровать . Проблема может решиться после любого выполненного шага.
Если предложенные шаги не привели к решению проблемы — переустановите криптопровайдер.
Полный список рекомендаций 1С
Полный список рекомендаций 1С для устранения ошибки в операционной системе:
- Повторно выполнить настройку криптографии на компьютере.
- Переустановить личный сертификат.
- Провести тестирование контейнера закрытого ключа, связанного с сертификатом.
- Сбросить пароль на контейнер закрытого ключа.
- Повторно перенести контейнер закрытого ключа в реестр при необходимости.
Действия по исправлению ошибки в 1С:
- Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать , чтобы не спутать с новым элементом справочника.
- Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
- Провести Тест настроек сертификата .
- Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
- Провести Тест настроек соглашения .
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
Контроль дебиторской и кредиторской задолженности — одно из важных направлений..Иногда при работе с программой 1С может возникнуть ошибка СУБД.Для передачи покупателям счетов-фактур в формате ЭДО типовыми средствами 1С.
Карточка публикации
Данную публикацию можно обсудить в комментариях ниже.Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Все комментарии (1)
Спасибо,за ваш кладезь знаний,которыми вы охотно делитесь с нами,чем облегчаете нам работу и экономите наше время.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Спасибо,очень ждем семинара,вернее Марину Аркадьевну,в её изложении все просто и понятно.
Надежда Владимировна В. (Нижневартовск, Ханты-Мансийский авт. окр.)Содержание
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
В последнее время сканеры python слишком часто сталкиваются с проблемами кодирования, пожалуйста, оставьте запись в блоге для записи.
проблема
Очень распространенный код сканера, код выглядит так:
Цель на самом деле очень проста, то есть сканировать содержимое цепочки, но после этого выполнения возвращаемые результаты, все содержимое, относящееся к китайскому, будут искажены, например
Такие данные можно назвать бесполезными.
анализ проблемы
Проблема здесь очевидна, то есть неправильная кодировка текста, приводящая к искаженным символам.
Посмотреть кодировку страницы
От заголовка просканированной целевой страницы используется страница utf-8 Кодировать.
Поэтому для окончательного кодирования мы также должны использовать utf-8 для обработки, то есть для окончательной обработки текста, использовать utf-8 для декодирования, то есть: decode('utf-8’)
Кодировка и декодирование текста
Процесс кодирования и декодирования Python похож на это, Исходный файл ===》 кодировать (метод кодирования) ===》 декодировать (метод декодирования) , В значительной степени, это не рекомендуется
Это способ жестко обрабатывать кодировку текста. Тем не менее, при определенных обстоятельствах, это не большая проблема, чтобы быть ленивым, но это больше рекомендуется использовать encode с участием decode Способ обработки текста.
Вернуться к вопросу
Самая большая проблема сейчас - это кодирование исходного файла, мы используем его обычно requests , Он будет автоматически угадывать метод кодирования исходного файла, а затем перекодировать в Unicode Кодирование, но, в конце концов, это программа, которую можно угадать неправильно, поэтому если вы угадываете неправильно, нам нужно вручную указать метод кодирования. Официальное описание документа выглядит следующим образом:
Итак, нам нужно проверить requests Что именно возвращает метод кодирования?
Печатные результаты являются следующими:
Другими словами, исходный файл использует ISO-8859-1 Кодировать Baidu ISO-8859-1 , Результаты приведены ниже:
ISO8859-1, обычно называется Latin-1. Latin-1 включает в себя дополнительные символы, которые необходимы для написания всех западноевропейских языков.
задача решена
Нашел этот материал, проблема решена очень хорошо, пока вы указываете код, вы можете правильно печатать на китайском. код шоу, как показано ниже:
Результат печати очевиден, и китайский отображается правильно.
Другой способ заключается в декодировании и кодировании исходного файла, код выглядит следующим образом:
другой: ISO-8859-1 ака latin1 , использование latin1 Это нормально сделать результат декодирования.
Проблема кодирования Python3
Я взял несколько потоков байтов из Интернета и хотел их распечатать. Произошла следующая ошибка:
UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 8530: illegal multibyte sequence
Мало того, следующий код был найден в html домашней странице Baidu:
Это показывает, что веб-страница действительно использует utf-8, почему возникает ошибка?
В python3 есть здравый смысл в кодировании
1. Символы - это символы Юникода, а строки - массивы символов Юникода.
Если вы тестируете с помощью следующего кода,
Вы обнаружите, что результатом является Истина, которой достаточно, чтобы объяснить эквивалентность между ними.
2. Стр. В байты, называемые кодированием, байты в стр., Называемые декодированием, так как приведенный выше код предназначен для декодирования захваченного байтового потока в массив Юникод
После тестирования со следующим кодом
Это действительно дало ошибку: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence
В Интернете я нашел таблицу кодирования UTF-8 и обнаружил, что форма специального символа »UTF-8 - это c2bb, а юникод -« \ u00bb », почему его нельзя декодировать. , ,
Результат неверный: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence
Оказывается, функция print () имеет свои ограничения и не может печатать все символы Юникода полностью.
Зная причину, я нашел решение в Google -8 'сделаю
После запуска не сообщается об ошибке, но есть много искаженных символов (английский отображается нормально, китайский искажен)! ! После другого броска выяснилось, что это проблема с консолью. В частности, когда я запускаю скрипт под cmd, там будут искаженные символы, но под IDLE это нормально.
Исходя из этого, я предполагаю, что cmd не очень хорошо совместим с utf8, и IDLE может даже работать под IDLE, даже «менять кодировку по умолчанию для стандартного вывода» не нужно, поскольку по умолчанию используется utf8. Если вы должны запустить его под cmd, то измените кодировку, например, я изменил на «gb18030», он может отображаться нормально:
Наконец, прикрепите имена некоторых обычно используемых китайских кодировок и назначьте их кодировке соответственно, вы можете увидеть различные эффекты:
Возвышенная проблема конфигурации
Введение
Мне никогда не нравилось использовать командную строку, поэтому в технологических инновациях в конце прошлого года я использовал TkInter для разработки небольших инструментов. В результате потребовалось много времени, чтобы научиться пользоваться TkInter UI.
Недавно я хотел разобраться с инструментом, использовать командную строку, а затем распространять инструмент как исполняемый файл. Обнаружены проблемы кодирования в начале работы.
В скрипте присутствуют следующие коды, используемые для получения пользователем интерактивного ввода ip.
В первой строке файла скрипта я добавил следующий код
Но когда консоль окон выполнена, появляются искаженные символы. Это немного озадачивает, потому что я всегда был на python, и китайский код добавляется в заголовок файла.
При поиске было обнаружено, что это произошло из-за кодировки cp936 по умолчанию, используемой в Windows cmd. Теперь, когда вы знаете, как использовать эту кодировку, измените кодировку на следующую:
Но получил следующую ошибку:
Озадаченный. Как ленивый больной раком, я хочу обойтись. Используйте следующий метод для кодирования отдельных строк.
Это важно для нормального вывода китайского языка в cmd. Но проблема приближается. В моем скрипте есть сотни строк кода на китайском языке. Я пишу это везде, мне лень, но я наказан.
На этот раз через поиск. Постепенно обнаружил причину проблемы. Это потому, что Python имеет несколько уровней кодирования. Они есть:
- Кодировка на уровне строки
- Кодирование на уровне сценария
- кодировка уровня py файла
- Кодировка окна дисплея
Кодирование строковых переменных
Для транскодирования одной строки вы можете использовать: encode() Кодируется для отображения. Обычно строка не может быть напрямую преобразована из одной кодировки в другую кодировку. Обычно необходимо декодировать в Unicode, а затем перекодировать строку Unicode. Например, приведенный выше пример.
Кодировка скрипта
Кодировка пи-файла
Кодировка py-файлов по умолчанию - ANSI. Но вы также можете использовать utf-8, кодировку Unicode.
Кодировка окна дисплея
В вышеуказанных случаях китайцы не ошибутся на этапе эксплуатации. Однако эти китайские иероглифы могут отображаться неправильно. Может ли это отображаться нормально, Есть также решения по кодированию, поддерживаемые окном дисплея , Например, китайский язык в cmd поддерживает GBK и cp936, поэтому строки в коде должны быть закодированы для этих двух, прежде чем их можно будет отобразить.
Когда кодировка файла py является ANSI. Добавить, если не указано в коде ** - -coding:utf-8 - - **, когда в коде появляется китайский, при запуске скрипта. Следующая ошибка появится
В заключение
Из приведенного выше теста можно сделать несколько выводов:
- Кодирование имеет иерархическую структуру. Кодировка файла влияет на кодировку содержимого сценария, а кодировка содержимого сценария определяет кодировку строки.
- Когда отображение строки устанавливает кодировку. Кодировка строки символов - это кодировка, устанавливаемая дисплеем, в этом случае кодировка файла и сценария не работает. Когда строка символов не отображает установленную кодировку, применяется кодирование верхнего уровня.
- Поэтому при установке этих трех кодов необходимо убедиться, что эти три кода могут быть преобразованы. В противном случае произойдут перечисленные выше ошибки.
Другие производные
Есть много вещей, которые можно сказать о кодировке символов. Друзья, которые хотят знать, могут обратиться к информации следующих великих богов.
Читайте также: