|
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 и сравни коды символов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |