Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Некорректно конвертирует русский шрифт при переводе в json / 4 сообщений из 4, страница 1 из 1
14.04.2020, 21:32
    #39947238
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректно конвертирует русский шрифт при переводе в json
Если есть возможность, посоветуйте, пожалуйста, что можно изменить в коде, чтобы при конвертации в json корректно отображался русский шрифт.

Русский шрифт конвертируется вот так: "displayname": "\u041Dаи\u043Cе\u043D\u043Eва\u043­Dие / ФИ\u041E". Это представление символов кириллицы в Unicode.
А надо: "displayname": "Наименование / ФИО".

Стандартный метод ConvertToJson менять не хочется, поскольку это влечет другие проблемы.
Предполагала использовать конструкцию StrConv(Temp, vbFromUnicode), но не получается пока.


Код - в файле Книга2.
json - в jsonExample.
...
Рейтинг: 0 / 0
14.04.2020, 21:33
    #39947240
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректно конвертирует русский шрифт при переводе в json
Не знаю, как приложить второй файл. Вот он.
...
Рейтинг: 0 / 0
17.04.2020, 20:27
    #39948482
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректно конвертирует русский шрифт при переводе в json
Мне удалось решить проблему. Закрываю тему.
...
Рейтинг: 0 / 0
21.04.2020, 19:06
    #39949577
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Некорректно конвертирует русский шрифт при переводе в json
Все же иногда полезно давать в итоге ответ.

Для моего применения хватило следующего кода:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Public Function DeCodeJson(ByVal txt As String) As String
    Static oREGEXP As VBScript_RegExp_55.RegExp
    
    Dim oMatches As VBScript_RegExp_55.MatchCollection
    Dim m As Object
    Dim coll As New Collection
    Dim item As Variant
    Dim char As String
    
    On Error Resume Next
    If oREGEXP Is Nothing Then Set oREGEXP = CreateObject("VBScript.RegExp"): oREGEXP.Global = True
    oREGEXP.Pattern = "\\u[A-Fa-f0-9]{4}"
 
    If oREGEXP.Test(txt) Then
        Set oMatches = oREGEXP.Execute(txt)
        For Each m In oMatches
            coll.Add m.Value, CStr(m.Value)
        Next
    End If
 
    For Each item In coll
        char = ChrW(Val(Replace(item, "\u", "&h")))
        txt = Replace(txt, item, char)
    Next
 
    For Each item In Array("""", "/")
        txt = Replace(txt, "\" & item, item)
    Next
    txt = Replace(txt, "\n", vbNewLine)
    DeCodeJson = Replace(Replace(txt, "\\", "\"), "<br>", vbCrLf)
End Function
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Некорректно конвертирует русский шрифт при переводе в json / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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