![]() |
![]() |
![]() |
|
Возможно ли кодирование символов русского алфавита с помощью Code128? | ☑ | ||
---|---|---|---|---|
0
Виталий
22.12.10
✎
17:36
|
Добрый день!
Возможно ли кодирование символов русского алфавита с помощью Code128? |
|||
1
PVV65
22.12.10
✎
17:43
|
||||
2
Serginio1
22.12.10
✎
17:53
|
Можно. Например в том же Code128 испоьльзутся управляющие символы для аналога кодовых страниц.
Ты можешь переводить Уникоде в ASCII function СимволАнсиТуУникоде(Буква) КодСимв=КодСимвола(Буква)+128; Если (КодСимв>=192 и КодСимв<=255) Тогда Возврат Символ(КодСимв+1040-192) ИначеЕсли КодСимв=168 Тогда возврат "Ё" ИначеЕсли КодСимв=184 Тогда возврат "ё" ИначеЕсли КодСимв=185 Тогда возврат "№" Иначе сообщить(КодСимв) КонецЕсли; Возврат "" КонецФункции И кодировать |
|||
3
Serginio1
22.12.10
✎
17:53
|
Функция ПреобразоватьСтрокуДляКоде128(стр) экспорт
ЭтоЛатиница=1; резулт=""; Для сч=1 по СтрДлина(стр) Цикл Буква=Сред(стр,сч,1); Если КодСимвола(Буква)>127 Тогда Если ЭтоЛатиница=1 Тогда Резулт=Резулт+Символ(1); ЭтоЛатиница=0; КонецЕсли; Резулт=Резулт+СимволИзУникодаВАнси(Буква)//Символ(КодСимв(Буква)-128) иначе Если ЭтоЛатиница=0 Тогда Резулт=Резулт+Символ(1); ЭтоЛатиница=1; КонецЕсли; Резулт=Резулт+Буква КонецЕсли; КонецЦикла; возврат резулт КонецФункции |
|||
4
Виталий
22.12.10
✎
17:59
|
(1) Это я читал в первую очередь
|
|||
5
73
22.12.10
✎
18:01
|
||||
6
Виталий
22.12.10
✎
18:01
|
(2), (3) Спасибо, идея понятна!
|
|||
7
Виталий
22.12.10
✎
18:03
|
Кроме того, только что, я для себя открыл стандарт ГОСТ 30743-2001 (например, http://vsegost.com/Catalog/68/6846.shtml). Я его еще читаю, но там, вроде, написано, что все возможно :)
|
|||
8
Виталий
22.12.10
✎
18:03
|
(4) В точку :)
|
|||
9
Виталий
22.12.10
✎
18:04
|
т.е. (5) в точку :)
|
|||
10
Виталий
22.12.10
✎
18:04
|
Всем спасибо!
|
|||
11
Serginio1
22.12.10
✎
18:05
|
Вот тебе остаток
function СимволАнсиТуУникоде(Буква) КодСимв=КодСимвола(Буква)+128; Если (КодСимв>=192 и КодСимв<=255) Тогда Возврат Символ(КодСимв+1040-192) ИначеЕсли КодСимв=168 Тогда возврат "Ё" ИначеЕсли КодСимв=184 Тогда возврат "ё" ИначеЕсли КодСимв=185 Тогда возврат "№" Иначе сообщить(КодСимв) КонецЕсли; Возврат "" КонецФункции |
|||
12
Serginio1
22.12.10
✎
18:06
|
Функция ПреобразоватьСтрокуДляКоде128Обратно(стр) экспорт
ЭтоЛатиница=1; резулт=""; Для сч=1 по СтрДлина(стр) Цикл Буква=Сред(стр,сч,1); Если КодСимвола(Буква)=1 Тогда Если ЭтоЛатиница=1 Тогда ЭтоЛатиница=0 Иначе ЭтоЛатиница=1 КонецЕсли; иначе Если ЭтоЛатиница=0 Тогда Резулт=Резулт+СимволАнсиТуУникоде(Буква)//Симв(КодСимв(Буква)+128); Иначе Резулт=Резулт+Буква КонецЕсли; КонецЕсли; КонецЦикла; возврат резулт КонецФункции |
|||
13
Fragster
гуру
22.12.10
✎
18:06
|
пихай в base64 и все
|
|||
14
Виталий
22.12.10
✎
18:07
|
И еще вопрос по теме.
Если я правильно понял, Code128 - это правила кодирования, а EAN-128 - это стандарты, использующие Code128? |
|||
15
Виталий
22.12.10
✎
18:09
|
(13) Что есть base64?
|
|||
16
Serginio1
22.12.10
✎
18:11
|
base64 переводит двоичные данные в текстовый с набором символов из 64
|
|||
17
Serginio1
22.12.10
✎
18:11
|
(14) да
|
|||
18
Виталий
22.12.10
✎
18:19
|
(16) Понял, спасибо!
|
|||
19
Serginio1
22.12.10
✎
18:20
|
(13) +16 но у тебя в итоге получится очень длинная строка, т.к. уникод это два байта и плюс еще увеличение на кодирование 2 в 8 на 2 в 6 то есть на 1.333
|
|||
20
Виталий
22.12.10
✎
18:23
|
(19) Это я уже понял
|
|||
21
Serginio1
22.12.10
✎
18:30
|
Единственно, что Code128 сам экранирует символы меньше 32
вводя дополнительные символы |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |