2017-09-02 69 views
2

我請求從這個API結果UTF-8字符: http://mlrs.research.um.edu.mt/resources/gabra-api/請求URL與VBA代碼

一切正常,除非我介紹的馬耳他字符(這是UTF-8)的罰款。

如果我使用以下URL手動請求數據,則返回是正確的。 http://mlrs.research.um.edu.mt/resources/gabra-api/lexemes/search?s=għar

...搜索?S = CAR(不能發佈兩個以上的鏈路還沒有。)

使用下面的代碼,返回的是空白。

{"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}} 

注意?替換ħ和ċ字符 - 這只是因爲我從即時窗口複製了這些字符。

這是我使用,使請求的代碼:

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 

因爲VBA IDE不支持這些字符,測試將需要從表單字段來完成。

任何幫助,非常感謝。

在此先感謝。

斯蒂芬

回答

1

URL包含一些非ASCII字符,所以你必須事先對其進行編碼:

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