XBrut @ Сегодня, 16:03
,
японский бог. потратил почти целый день.
//Всю команду, подготовленную для передачи в турбо-смс соединяем в строку
Команда = "insert into MOSKALIAKUNAGILLIAKU(number,sign,message) values('" + стрТелефон + "','MOSKALIAKUNAGILLIAKU','"+ СокрЛП(ТекстСообщения) + "')";
//Дальше это дело кодируем в утф-8 и записываем в файл
ЗаписьТекста = Новый ЗаписьТекста("G:\1C_8\UTP\Files\1.txt", КодировкаТекста.UTF8);
ЗаписьТекста.ЗаписатьСтроку(Команда);
ЗаписьТекста.Закрыть();
//Дальше отковыриваем заголовок 4 символа впереди (в интернетах пишут, что этот заголовок указывает, в какой кодировке будет следующий текст)
Данные =Новый ДвоичныеДанные("G:\1C_8\UTP\Files\1.txt");
Строка64 =Base64Строка(Данные);
Строка64 =Прав(Строка64,СтрДлина(Строка64)-4);
ДанныеНаЗапись =Base64Значение(Строка64);
ДанныеНаЗапись.Записать("G:\1C_8\UTP\Files\1.txt"); // записываем
//Дальше читаем, но уже используя кодировку анси. чтобы получились кракозябры вместо славянских букв
ЧтениеТекста = Новый ЧтениеТекста("G:\1C_8\UTP\Files\1.txt", КодировкаТекста.ANSI);
Команда = ЧтениеТекста.ПрочитатьСтроку();
//и вот эту ценную абракадабру отправляем на турбо-смс
Соединение.Execute(Команда);
и вуаля - повідомлення надійшло нашою мовою
П.С. в платформе 8.3 имеется новый метод
КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>)
который делает приблизительно то же самое, но он возвращает строку вида "%AD%AF..." как эту строку скормить турбо-смс , я так и не понял. Если кто знает - отпишитесь.