Имя: Пароль:
1C
1С v8
8.2 Кодировка windows-1251
0 2307861c
 
02.11.11
12:53
Есть строка , при выполнении обработки нужно ее перевести в кодировку windows-1251. Как это можно сделать, не пойму. Я уже думаю может в временный файл сохранять (там есть возможность указания кодировки) и потом с него читать. Люди, что посоветуете?
1 Wobland
 
02.11.11
12:56
а на зачем?
2 ДенисЧ
 
02.11.11
12:56
Сохраняй во временный файл, потом читай.
Или ADODB.Stream прикрути...
3 Serginio1
 
02.11.11
12:58
Тебе коды символов в windows-1251 нужны ?
4 Serginio1
 
02.11.11
12:59
function СимволИзУникодаВАнси(Буква)
   
 Симв=КодСимвола(Буква);
 if (Симв<128) Тогда
     Возврат буква
  ИначеЕсли (Симв>=1040 и Симв<=1103)Тогда
  Возврат Символ(Симв-1040+192-128)
ИначеЕсли Симв=КодСимвола("Ё") Тогда
    Возврат Символ(168-128);
ИначеЕсли Симв=КодСимвола("ё") Тогда
    Возврат Символ(184-128)
ИначеЕсли Симв=КодСимвола("№") Тогда
    Возврат Символ(185-128)
  else
      Сообщить(Символ(Симв));
  КонецЕсли;
 
   Возврат ""
КонецФункции

function СимволАнсиТуУникоде(Буква)
   
         КодСимв=КодСимвола(Буква)+128;
        Если (КодСимв>=192 и КодСимв<=255) Тогда
            Возврат Символ(КодСимв+1040-192)
        ИначеЕсли КодСимв=168 Тогда
            возврат "Ё"
        ИначеЕсли КодСимв=184 Тогда
            возврат "ё"
        ИначеЕсли КодСимв=185 Тогда
            возврат "№"
        Иначе
            сообщить(КодСимв)
        КонецЕсли;

   
        Возврат ""
КонецФункции
5 Serginio1
 
02.11.11
13:01
Прошу прощения это код и перевода для Code128. Не нужно вычитать 128
6 2307861c
 
02.11.11
13:04
(5) Тоесть обрабатывать каждый символ через такую функцию
function СимволИзУникодаВАнси(Буква)
   
 Симв=КодСимвола(Буква);
 if (Симв<128) Тогда
     Возврат буква
  ИначеЕсли (Симв>=1040 и Симв<=1103)Тогда
  Возврат Символ(Симв-1040+192)
ИначеЕсли Симв=КодСимвола("Ё") Тогда
    Возврат Символ(168);
ИначеЕсли Симв=КодСимвола("ё") Тогда
    Возврат Символ(184)
ИначеЕсли Симв=КодСимвола("№") Тогда
    Возврат Символ(185)
  else
      Сообщить(Символ(Симв));
  КонецЕсли;
 
   Возврат ""
КонецФункции
7 andrewks
 
02.11.11
13:15
(1) +1
если в файл, я так понял, всё равно сохранять не надо, то, действительно, зачем?
8 2307861c
 
02.11.11
13:27
Эта функция 100% переобразует в windows-1251

function СимволИзУникодаВАнси(Буква)
   
 Симв=КодСимвола(Буква);
 if (Симв<128) Тогда
     Возврат буква
  ИначеЕсли (Симв>=1040 и Симв<=1103)Тогда
  Возврат Символ(Симв-1040+192)
ИначеЕсли Симв=КодСимвола("Ё") Тогда
    Возврат Символ(168);
ИначеЕсли Симв=КодСимвола("ё") Тогда
    Возврат Символ(184)
ИначеЕсли Симв=КодСимвола("№") Тогда
    Возврат Символ(185)
  else
      Сообщить(Символ(Симв));
  КонецЕсли;
 
   Возврат ""
КонецФункции
9 2307861c
 
02.11.11
13:27
?
10 Serginio1
 
02.11.11
15:11
А проверить никак? Возими все симовлы русского алфавита, перекодируй этой функцией. Сохрани в файл ASCII, а прочитай через кодировку 1251
11 Serginio1
 
02.11.11
15:24
Или Сохрани все русские символы в файл с кодировкой windows-1251 а открой US-ASCII и сравни коды символов
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.