AXForum  
Вернуться   AXForum > Прочие обсуждения > Обсуждение форума
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2006, 16:07   #12  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Aleksey_M
Щас еще глянул - в ie у меня стоит галка в настройках "конвертировать url адреса в utf-8", а оно на это забивает
У меня, увы, аналогично.
Цитата:
Сообщение от Aleksey_M
На стороне сервера принудительное конвертирование делать не хочется
Дык, как выясняется, в этом нет никакой особой необходимости.
Цитата:
Сообщение от belugin
вставьте в строку браузера javascript:alert(encodeURIComponent('запрос два')) и нажмите Enter
Спасибо, классно. А если еще убрать alert и оставить только javascript:encodeURIComponent('запрос два') , то в тело будет выдана строка, которую можно скопировать.

По этим мотивам родил VBA-шную функцию, возвращающую юникодное представление исходной нормальной строки:
Код:
'Код - Excel VBA
 
Function myEncodeURIComponent(SourceString) As String
 
    'в Tools/References должна быть включена ссылка на "Microsoft Internet Controls" (shdocvw.dll)
 
    Static IE As InternetExplorer 'после первого вызова функции IE сохраняется в памяти для последующих вызовов
 
    If IE Is Nothing Then
        'для первого вызова, пока IE еще не определен
        Set IE = New InternetExplorer
        IE.Visible = True 'на время отладки
    End If
 
    If SourceString = "" Then
        'если передана пустая строка, то выгружаем нашу служебную копию IE
        IE.Quit
        Set IE = Nothing
        myEncodeURIComponent = ""
        Exit Function
    End If
 
    IE.Navigate "javascript:encodeURIComponent('" & SourceString & "')" 
    'Thanks to belugin
 
    myEncodeURIComponent = IE.Document.Body.InnerText
 
End Function
Получилось несколько заднепроходно, хотя в принципе вполне работоспособно (для тестового, непромышленного использования - хотя иное и не предполагается).

Однако, может быть, можно придумать что-нибудь более элегантное? (т.е. без подъёма доп. копии IE только для того, чтобы конвертить строки в юникод). В Excel VBA ничего похожего не нашёл, так же, как не нашёл библиотеку для References, "отвечающую" за javascript. Может быть, есть какое-нибудь гуманное конвертило в юникод, которое можно встроить в VBA-функцию?
Теги
как правильно, поиск, разделы, форум

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Опрос: какое время можно уделять форуму? otkudao Обсуждение форума 15 20.12.2005 13:23

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:08.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.