|
Как перевести строку в UTF-8 |
☑ |
0
Victor1c
24.04.13
✎
12:53
|
Нашел такую функцию - не работает.
Функция UTF8(Стр)
Длина=СтрДлина(Стр);
Итог="";
Для Н=1 По Длина Цикл
Знак=Сред(Стр,Н,1);
Код=КодСимвола(Знак);
Если Код<128 Тогда
Итог=Итог+Знак;
Иначе
Если (Код>=КодСимвола("А"))И(Код<=КодСимвола("п")) Тогда
Итог=Итог+Символ(208)+Символ(144+Код-КодСимвола("А"));
ИначеЕсли (Код>=КодСимвола("р"))И(Код<=КодСимвола("я")) Тогда
Итог=Итог+Символ(209)+Символ(128+Код-КодСимвола("р"));
ИначеЕсли (Знак="ё") Тогда
Итог=Итог+Символ(209)+Символ(145);
ИначеЕсли (Знак="Ё") Тогда
Итог=Итог+Символ(208)+Символ(129);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Итог;
КонецФункции
|
|
1
Torquader
24.04.13
✎
13:06
|
Начнём с того, что в 1С строка всегда Unicode и перевести её в UTF-8 не получится, так как каждый символ занимает два байта, а в UTF-8 произвольное число байт.
Можно попытаться "имитировать" строку UTF-8 из двухбайтовой строки, но результат будет непредсказуемым - мы даже не можем получить строку с нечётным числом байтов.
|
|
2
mehfk
24.04.13
✎
13:17
|
(0) ЗаписьТекста/ЧтениеТекста
|
|
3
oleg_km
24.04.13
✎
13:49
|
+(1) ну то есть 1С всегда будет интерпретировать ее как Unicode. Для чего нужно, может подскажем как обойти?
|
|
4
kostadav
24.04.13
✎
17:39
|
У меня получилось только при помощи внешней компоненты
|
|
5
Ковычки
24.04.13
✎
17:40
|
открыть сохранить открыть - еще не предлагали ?
|
|