Транслитерация Unicode в ASCII

24.01.22

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

Приведен пример функции.

Файлы

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

Наименование Скачано Купить файл
Транслитерация Unicode в ASCII:
.txt 1,18Kb
0 2 500 руб. Купить

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

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

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

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

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

Иногда (особенно при обмене с внешними системами) требуется перекодировка "с сохранением читаемости", т.е. Ń, Ņ и Ň должны быть перекодированы в N.

Простая функция, на сервере Xeon 3.5ГГц x64 на строке 25 символов (из них 10 - перекодируемые) работает примерно 10 мс. 
Можно модифицировать транслитерируемые символы, добавляя их в строки Юни и Аск.

В коде приведена половина набора Latin-1 Supplement (U+00C0 ... U+00FF). Более полные строки (то же + Latin Extended A + Latin Extended B U+00C0 ... U+024F) - в приложенном файле.

Имейте в виду, что стандартный редактор 1С символы со U+0181 по U+0189 криво показывает ("лепит" в одно место), но копируются и работают они корректно.

Использована таблица Unicode отсюда.

 
 Код

 

Функция ЮниВАски(Строка) // 0,008 сек
	Юни = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
	Аск = "AAAAAA?CEEEEIIII?NOOOOO*OUUUUY??aaaaaa?ceeeeiiii?nooooo?ouuuuy?y";
	НоваяСтрока = "";
	Для к = 1 по СтрДлина(Строка) Цикл
		Символ = Сред(Строка, к, 1);
		Если КодСимвола(Символ) >= 192 и КодСимвола(Символ) <= 591 Тогда
			Позиция = СтрНайти(Юни, Символ);
			Если Позиция > 0 Тогда
				Символ = Сред(Аск, Позиция, 1);
			Иначе
				Символ = "?";
			КонецЕсли;
		КонецЕсли;
		НоваяСтрока = НоваяСтрока + Символ;
	КонецЦикла;
	Возврат НоваяСтрока;
КонецФункции

 

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

Функция UNICODE UTF ASCII

См. также

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

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

30.10.2025    5663    Abysswalker    11    

47

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

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

14.05.2025    10339    DeerCven    15    

64

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

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

21.05.2024    61789    dimanich70    86    

176

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

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

1 стартмани

18.03.2024    8446    7    John_d    13    

59

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

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

12.02.2024    77628    atdonya    31    

75

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

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

30.11.2023    10831    ke.92@mail.ru    18    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1104 24.01.22 17:47 Сейчас в теме
Это не транслитерация, а обрезание диакритических значков.
so-quest; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация