Поиск корректной кодировки текста

12.10.20

Разработка - Универсальные функции

Обработка для поиска корректной кодировки текста.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Поиск корректной кодировки текста
.epf 7,94Kb
15 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Вообще задача была поднять WEB сервис, чтобы поставщик услуг, стучась к нам по API мог заносить некую информацию.
По API залетает XML, в которой кодировка кириллицы может быть не читабельной.

Пример:

  <owner>Standard</owner>
      <start_country_id>RU</start_country_id>
      <start_zip>450028</start_zip>
      <start_city>г. Уфа, Уфимский район</start_city>
      <start_region/>
      <end_country_id>RU</end_country_id>

 

Ну и в рамках задачи, надо было все это дело самому обрабатывать, чтобы в базу заходил корректный текст.

Для сего и была написана соответствующая функция. Эта функция и используется в обработке. Если кому надо, решать подобную задачу, то просто возьмите функцию из обработки.

Задача решается несложно.

  1. функция никуда не записывает файлы, работает в памяти со строкой. Это важно, в основном все пишут куда-то файл, потом читают в какой-либо кодировке. Считаю это не приемлемым. Если файл потом не требуется хранить, то с данными надо работать в памяти.
  2. Функция преобразует текст в разные кодировки (UTF8,windows-1251,koi8-r,koi8-u,cp866,iso-8859-5);
  3. Определяет, какая кодировка соответствует нормальному тексту, на основе рейтинга;
  4. Возвращает строку.
  5. Работает с кодировками: utf-8, windows-1251, koi8-r, koi8-u, cp866, iso-8859-5 (в самой функции, через запятую, без пробелов можно добавить сколько хотите кодировок (которые понимает 1С, но это может влиять на скорость работы).

Тестировал на платформе: 8.3.12.1790.

Вступайте в нашу телеграмм-группу Инфостарт

Кодировка текст

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4825    Abysswalker    11    

47

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    9027    DeerCven    15    

63

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    57915    dimanich70    85    

175

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    8138    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    72664    atdonya    31    

73

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    10112    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rusmil 264 12.10.20 18:26 Сейчас в теме
Определяет, какая кодировка соответствует нормальному тексту, на основе рейтинга
Можете пояснить детальнее, что за рейтинг применяется для распознавания кодировки?
2. madonov 272 13.10.20 02:32 Сейчас в теме
(1) думаю, что чем больше в итоговом тексте символов "а-я", тем выше рейтинг. Но это только догадка. Возможно автор реализовал иначе.
3. Jokemas 196 13.10.20 09:30 Сейчас в теме
(2) Слоги. Там тупо строка слогов через запятую, которые с помощью СтрРазделить превращаются в массив, после чего используются. Чем больше уникальных слогов встретилось в тексте, тем вышей рейтинг. В Русском языке ограниченное количество слогов и они все известны.

А по символам от "а-я" не будет работать. К примеру, если текст был в кодировке cp1251 и попытаться его перевести в koi8-r или koi8-u, то будет не пойми что, но кириллицей.

Фишка в том, что любой язык строится вокруг слов, которые состоят из слогов.
CyberCerber; +1 Ответить
4. gaglo 04.11.20 13:39 Сейчас в теме
(3)
В Русском языке ограниченное количество слогов и они все известны.

Уважаемый автор, буде Ваше на то Соизволение, поделитесь, как именно вы считали слоги (по какому акакадемику, к примеру), и сколько же их?
ЗЫ Я правда хочу знать эту фишку...
5. Jokemas 196 10.11.20 11:26 Сейчас в теме
(4)Просто все слоги начинающиеся на согласную и оканчивающиеся гласной, к примеру: "на,ну,но,ны,ни,не,ня" и т.д.Таблица слогов находится в поисковике. Я использую 193 слога.
6. dsdred 4227 17.06.21 13:02 Сейчас в теме
Была такая программа в 2000-х Шти́рлиц))

А вообще при чтении xml можно было указать кодировку и не сочинять функцию))
7. Jokemas 196 18.06.21 09:18 Сейчас в теме
(6) Да, вот только обработка собирала данные из разных API, где разная кодировка, при этом XML без блока <?xml version="1.0" encoding="*****?>. Прикинь, какая задача, когда ты не знаешь кодировку, а распарсить нужно =))). Это не я, это все они! =))
Для отправки сообщения требуется регистрация/авторизация