Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка Unicode приходит в прогу на VB6 / 7 сообщений из 7, страница 1 из 1
27.07.2015, 19:12
    #39017099
Nic2014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
От сервера в таком виде:
"Неверные логин или пароль!"

Подскажите, пожалуйста, как написать функцию, конвертирующую такую строку в читаемую?
Заранее спасибо.
...
Рейтинг: 0 / 0
27.07.2015, 20:38
    #39017130
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
Nic2014,

Есть 2 варианта.

Простой: подключить библиотеку от Microsoft Script Control, внутри неё создать функцию или обёртку на js, и с ней уже работать. Примерчик:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function getJavaScriptString(ByVal Text As String) As String
    Dim sc As Object
    Set sc = CreateObject("MSScriptControl.ScriptControl")
    
    sc.Language = "jscript"
    sc.AddCode "var str = """ & Text & """;"
    
    getJavaScriptString = sc.Eval("str")
End Function

Private Sub Form_Load()
    MsgBox getJavaScriptString("Неверные логин или пароль!")
End Sub



Правильный: По-символьно сканировать всю строку, если символы идут "\u", то если следующие 4 символа идут подряд, это будет шестнадцатеричным число символа в Unicode. Создать массив/коллекцию с сопоставлением символа из кирилицы с этим числом (в качестве ключа). И декодировать всё
...
Рейтинг: 0 / 0
28.07.2015, 01:24
    #39017249
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
VSVLAD, а почему через ScriptControl не совсем правильно?
Можно кстати без AddCode и сделать объект статическим, чтобы не создавать каждый раз:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Function getJavaScriptString(ByVal Text As String) As String
Static sc As Object
  If sc Is Nothing Then
    Set sc = CreateObject("MSScriptControl.ScriptControl")
    sc.Language = "jscript"
  End If
  getJavaScriptString = sc.eval("""" & Text & """")
End Function

Private Sub Form_Load()
    MsgBox getJavaScriptString("Неверные логин или пароль!")
End Sub
...
Рейтинг: 0 / 0
28.07.2015, 07:51
    #39017293
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
Казанский,

Он не то, чтобы "неправильный", но зависимые компоненты не хочется иметь, особенно если для данной задачи можно написать свою функцию конвертации
...
Рейтинг: 0 / 0
28.07.2015, 08:30
    #39017309
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
автор Dim sc As Object
Set sc = CreateObject("MSScriptControl.ScriptControl")

за такое вообще надо руки отрывать..
...
Рейтинг: 0 / 0
28.07.2015, 08:56
    #39017321
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
Eolt,

Сделано для того, чтобы автор мог "копи-паст-выполнить", по факту я описал, что нужно "подключить" в референсах
...
Рейтинг: 0 / 0
28.07.2015, 08:57
    #39017322
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка Unicode приходит в прогу на VB6
Казанский, + если сервер имеет 100% доверие, то можно использовать. Т.к. Eval без проверок, потенциальная угроза
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка Unicode приходит в прогу на VB6 / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]