|
Преобразование адресной строки с кириллицей в адресную строку для браузера |
☑ |
0
picom
16.08.13
✎
15:05
|
На УФ есть поле HTML
в него надо загнать адресную строку
т.е. кириллицу надо преобразовать в
Как?
|
|
1
picom
16.08.13
✎
15:05
|
преобразовать в "%D0%BC%D0%B8%D1%81%D1%82%D0%B0&lr"
|
|
2
picom
16.08.13
✎
15:45
|
up
в шапке код строка автоматом преобразовалась
поэтому вы не с первого раза поймете вопрос )
|
|
3
bborisko
16.08.13
✎
15:58
|
|
|
4
picom
19.08.13
✎
08:48
|
Ну так как преобразовать то ?
|
|
5
Defender aka LINN
19.08.13
✎
08:55
|
(4) "Такое преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в Юникоде (UTF-8) в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении:"
|
|
6
Infsams654
19.08.13
✎
09:00
|
// функция возвращает строку urlencoded
//
Функция UrlEncode(стр)
HEX = Новый Массив();
Для сч = 48 По 57 Цикл
HEX.Добавить(Символ(сч));
КонецЦикла;
Для сч = 65 По 70 Цикл
HEX.Добавить(Символ(сч));
КонецЦикла;
рез="";
Для сч = 1 По СтрДлина(стр) Цикл
чар = Сред(стр, сч, 1);
Если (чар >= "a") И (чар <= "z") Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если (чар >= "A") И (чар <= "Z") Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если (чар >= "0") И (чар <= "9") Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "-" Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "_" Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "=" Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "&" Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "." Тогда рез = рез + чар; Продолжить; КонецЕсли;
Если чар = "#" Тогда рез = рез + чар; Продолжить; КонецЕсли;
кс = КодСимволаASCII(чар);
рез = рез+ "%" + HEX[Цел(кс/16)] + HEX[Цел(кс % 16)];
КонецЦикла;
Возврат рез;
КонецФункции
// возвращает код символа в ASCII
//
Функция КодСимволаASCII(Символ)
КодUNICODE = КодСимвола(Символ);
Если ((КодUNICODE > 1039) И (КодUNICODE < 1104)) Тогда
Возврат (КодUNICODE - 848);
ИначеЕсли КодUNICODE = 8470 Тогда
Возврат 185;
ИначеЕсли КодUNICODE = 1105 Тогда
Возврат 184;
ИначеЕсли КодUNICODE = 1025 Тогда
Возврат 168;
Иначе
Возврат КодUNICODE;
КонецЕсли;
КонецФункции
|
|