|
![]() |
#1 |
Administrator
|
Щас еще глянул - в ie у меня стоит галка в настройках "конвертировать url адреса в utf-8", а оно на это забивает, по крайней мере при отправке из адресной строки, гы. Возможно при показе ссылки на странице и конвертит.
На стороне сервера принудительное конвертирование делать не хочется - не вижу смысла.
__________________
Был грязный плащ на нем одет, Цилиндр черный смят в гармошку... |
|
|
За это сообщение автора поблагодарили: Gustav (1). |
![]() |
#2 |
Moderator
|
Цитата:
Сообщение от Aleksey_M
Щас еще глянул - в ie у меня стоит галка в настройках "конвертировать url адреса в utf-8", а оно на это забивает
Цитата:
Сообщение от Aleksey_M
На стороне сервера принудительное конвертирование делать не хочется
Цитата:
Сообщение от belugin
вставьте в строку браузера javascript:alert(encodeURIComponent('запрос два')) и нажмите Enter
По этим мотивам родил 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-функцию? |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Gustav
Может быть, есть какое-нибудь гуманное конвертило в юникод, которое можно встроить в VBA-функцию?
http://www.google.com/search?client=...utf-8&oe=utf-8 |
|
![]() |
#4 |
Moderator
|
Цитата:
Сообщение от belugin
напишите scriptlet, или используйте MS Scripting Control
Код: 'Код - Excel VBA Function myNewEncodeURIComponent(ByVal SourceString As String) As String 'в Tools/References должна быть включена ссылка 'на "Microsoft Script Control 1.0" (msscript.ocx) Dim SC As MSScriptControl.ScriptControl Set SC = New MSScriptControl.ScriptControl SC.Language = "javascript" myNewEncodeURIComponent = SC.Eval("encodeURIComponent('" & SourceString & "')") Set SC = Nothing End Function ? myNewEncodeURIComponent("два самолета") %D0%B4%D0%B2%D0%B0%20%D1%81%D0%B0%D0%BC%D0%BE%D0%BB%D0%B5%D1%82%D0%B0 P.S. В качестве "узелка на память" приложу еще ссылочку (напрямую не использовал, но может пригодиться): Как с помощью VBA извлекать информацию из Web-страниц Последний раз редактировалось Gustav; 11.07.2006 в 19:27. |
|
![]() |
#5 |
Moderator
|
Ну, и чтобы всё это не выглядело отвязанной семантической эквилибристикой, покажу, для чего это нужно было мне.
Итак, пошаговая иллюстрация: 1. Создадим новую рабочую книгу Excel. 2. В книге создадим новый модуль кода VBA и поместим туда ранее рассмотренную функцию myNewEncodeURIComponent. 3. Добавим в модуль еще одну функцию: Код: Function GetSearchURL(ByVal SearchCriteriaString As String) As String GetSearchURL = "http://axforum.info/forums/search.php?do=process&showposts=0&quicksearch=1&s=&query=" & _ myNewEncodeURIComponent(SearchCriteriaString) End Function 5. В ячейку A1 рабочего листа введем строку: быстрый excel 6. В ячейку B1 введем формулу: =ГИПЕРССЫЛКА( GetSearchURL(A1); "Поиск на AxForum по критерию: " & A1 ) (приведено для: Excel - русский, разделитель списка - точка с запятой). 7. Щелкнем по ячейке B1 - выполняется поиск, результаты предстают в новом окне Интернет-браузера. Таким образом, появляется возможность сохранять свои критерии выполненных поисков в маленьком эксельном дневничке, расцвечивая его при желании всевозможной доп.информацией, например, датами, комментариями и т.п. Последний раз редактировалось Gustav; 22.07.2006 в 00:25. |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Gustav
Итак, пошаговая иллюстрация:
1. Создадим новую рабочую книгу Excel. 2. В книге создадим новый модуль кода VBA и поместим туда ранее рассмотренную функцию myNewEncodeURIComponent. ... 5. В ячейку A1 рабочего листа введем строку: быстрый excel 6. В ячейку B1 введем формулу: =ГИПЕРССЫЛКА( GetSearchURL(A1); "Поиск на AxForum по критерию: " & A1 ) (приведено для: Excel - русский, разделитель списка - точка с запятой). 7. Щелкнем по ячейке B1 - выполняется поиск, результаты предстают в новом окне Интернет-браузера. ![]() |
|
![]() |
#7 |
Moderator
|
Цитата:
Сообщение от gl00mie
Напомнило статью в блоге Palle Agermark под названием Is there anything Excel isn't a good tool for?
![]() |
|
Теги |
как правильно, поиск, разделы, форум |
|
![]() |
||||
Тема | Ответов | |||
Опрос: какое время можно уделять форуму? | 15 |
|