2017-09-02 1 views
2

que je demande les résultats de cette API: http://mlrs.research.um.edu.mt/resources/gabra-api/URL avec caractères UTF-8 à partir du code VBA

Tout fonctionne bien sauf quand je présente des caractères maltais (qui sont UTF-8).

Si je demande manuellement les données en utilisant les URL suivantes, le retour est correct. http://mlrs.research.um.edu.mt/resources/gabra-api/lexemes/search?s=għar

... recherche? S = čar (ne peut pas poster plus de deux liens encore.)

Lorsque vous utilisez le code suivant, le retour est vide.

{"results":[],"query":{"page":1,"page_size":20,"result_count":0,"term":"g?ar","search_lemma":true,"search_wordforms":true,"search_gloss":true,"pending":false,"pos":null,"source":null}} 

{"results":[],"query":{"page":1,"page_size":20,"result_count":0,"term":"?ar","search_lemma":true,"search_wordforms":true,"search_gloss":true,"pending":false,"pos":null,"source":null}} 

Remarque? remplacer les caractères ħ et - - c'est uniquement parce que j'ai copié ceux-ci à partir de la fenêtre immédiate.

C'est le code que je utilise pour faire les demandes:

Public Function GetWebSource(ByRef Url As String) As String 
    Dim xml As IXMLHTTPRequest 
    On Error Resume Next 
    Set xml = CreateObject("Microsoft.XMLHTTP") 
    With xml 
    .Open "GET", Url, False 
    .send 
    GetWebSource = .responseText 
    End With 
    Set xml = Nothing 
End Function 

Parce que VBA IDE ne prend pas en charge ces caractères, les tests devront être fait à partir d'un champ de formulaire.

Toute aide, très appréciée.

Merci d'avance.

Stephen

Répondre

1

L'URL contient des caractères non ASCII, vous devrez les encoder au préalable:

Set xhr = CreateObject("Microsoft.XMLHTTP") 
xhr.Open "GET", "http://mlrs.research.um.edu.mt/resources/gabra-api/lexemes/search?s=g%C4%A7ar", False 
xhr.Send