|
v8: Перекодировка строки(url encode): подскажите! | ☑ | ||
---|---|---|---|---|
0
1C-band
31.07.12
✎
12:41
|
Сабж!
Исходная строка, например: "Москва"; На выходе необходимо получить: "%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0". Подскажите, как? |
|||
1
Eugene_life
31.07.12
✎
12:42
|
(0) А это на каком языке-то?
|
|||
2
pumbaEO
31.07.12
✎
12:43
|
(1) url encode
|
|||
3
Eugene_life
31.07.12
✎
12:44
|
(2) Охренеть.. 1С-ники знают все!
|
|||
4
Balabass
31.07.12
✎
12:44
|
Ну 1с вроде не умеет сохранять в кодировках внешние файлы? не?
|
|||
5
Balabass
31.07.12
✎
12:45
|
Надо наверно какой то внешний редактор подключать.
|
|||
6
Balabass
31.07.12
✎
12:46
|
На выходе - куда текст идти будет? в файл?
|
|||
7
Balabass
31.07.12
✎
12:46
|
или таблицы будут?
|
|||
8
pumbaEO
31.07.12
✎
12:46
|
На
Функция hex(Знач Значение) Значение=Число(Значение); Если Значение<=0 Тогда Результат="0"; Иначе Значение=Цел(Значение); Результат=""; Пока Значение>0 Цикл Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%16 + 1,1)+Результат; Значение=Цел(Значение/16) ; КонецЦикла; КонецЕсли; Если СтрДлина(Результат) < 2 Тогда Результат = "0" + Результат; КонецЕсли; Возврат "%" + Результат; КонецФункции Функция EncodeURL(URL) // отсюда: http://www.w3.org/International/URLUTF8Encoder.java Рез = ""; Для Сч = 1 По СтрДлина(URL) Цикл ch = Сред(URL,Сч,1); vch = КодСимвола(ch); Если ("A" <= ch ) И ( ch <= "Z") Тогда // "A".."Z" Рез = Рез + ch; ИначеЕсли ("a" <= ch ) И ( ch <= "z") Тогда // "a".."z" Рез = Рез + ch; ИначеЕсли ("0" <= ch ) И ( ch <= "9") Тогда // "0".."9" Рез = Рез + ch; ИначеЕсли (ch = " ") ИЛИ ( ch = "+") Тогда // space Рез = Рез + "+"; ИначеЕсли (ch = "-" ) ИЛИ ( ch = "_") Тогда // unreserved // ch == '.' || ch == '!' // ch == '~' || ch == '*' // ch == '\'' || ch == '(' // ch == ')') Тогда Рез = Рез + ch; ИначеЕсли (vch <= 127) Тогда // other ASCII Рез = Рез + hex(vch); ИначеЕсли (vch <= 2047) Тогда // non-ASCII <= 0x7FF Рез = Рез + hex(192 + Цел(vch / 64)); Рез = Рез + hex(128 + (vch % 64)); Иначе // 0x7FF < ch <= 0xFFFF Рез = Рез + hex(224 + Цел(vch / 4096)); Рез = Рез + hex(128 + (Цел(vch / 64) % 64)); Рез = Рез + hex(128 + (vch % 64)); КонецЕсли; КонецЦикла; Возврат Рез; КонецФункции // () |
|||
9
1C-band
31.07.12
✎
12:49
|
(8) Спасибо! Для русских, как раз, строк мне надо... Вроде должно подойти?
|
|||
10
Balabass
31.07.12
✎
12:50
|
Так а для чего это все - расскажите.
|
|||
11
Eugene_life
31.07.12
✎
12:51
|
(10) Шифруется человек
|
|||
12
Kreont
31.07.12
✎
12:51
|
(8) В базу добавь, пригодится не один раз.
|
|||
13
1C-band
31.07.12
✎
12:54
|
(10) Чтобы при вызове Google Maps API, например (да всего в интернете), русские буквы хавало.
|
|||
14
1C-band
31.07.12
✎
12:56
|
Отлично! Спасибо ещё раз!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |