NotesJsonNavigator 和国际字符

NotesJsonNavigator and international characters

我有 json 数据想在 lotusscript 库中使用。 我使用 NotesJsonNavigator 浏览数据。 如果我将 preferUTF8 设置为 false,NotesJSONElements 中的值是字符串,但它会删除 ö、å、...

等国际字符

如果我将参数 preferUTF8 设置为 true,我的 NotesJSONElements 中的值是字节数组。 如何将这些字节数组转换为字符串,同时考虑国际字符?

示例:

Dim session As New NotesSession
'URL Parameters have to be UTF-8 encoded.
Dim url As string
URL = "https://maps.googleapis.com/maps/api/geocode/json?address=Malm%C3%B6%2C%20Sweden&key=<My Google API Key>"

'Creating the request
Dim webRequest As NotesHTTPRequest
Dim response As Variant
Set webRequest = session.createhttprequest()

'Get response as byte array
webrequest.preferstrings = False
response  = webrequest.Get(URL)

'Throw error if response status is not OK
If InStr(webRequest.Responsecode, "200 OK") = 0 Then
    'Return Status is not OK
    Error 1000, "Request returned response code " + webRequest.responseCode
End If

'Create the JSON NAVIGATOR
Dim jsnav As NotesJSONNavigator
If Not IsArray(response) Then Error 1000, "JSON is nothing"
Set jsnav = session.CreateJSONNavigator(response)
'Get data as Strings
jsnav.Preferutf8 = False


'Declaring json specific elements
Dim el_address As NotesJSONElement
Dim el_state As NotesJSONElement

'Retrieving the address...
Set el_address = jsnav.getelementbypointer("/results/0/formatted_address")
Print el_address.value

'Retrieving state
Set el_state = jsnav.getelementbypointer("/results/0/address_components/1/long_name")
Print el_state.value

这会打印

瑞典马尔姆

斯肯

这将在下一个 10.0.1 FP 中修复。请留意修复列表中的 DCONB8F6JV。