|
|
|
|
#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%B0P.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 Function5. В ячейку 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 | |||
|