इसमें LINK >> @QHarr ने गिनने के लिए एक समाधान पेश किया है Google खोज के परिणाम और यह रहा कोड

Public Sub GetResultsCount()
Dim sResponse As String, html As HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", "https://www.google.com/search?q=mitsubishi", False
    .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
    .send
    sResponse = StrConv(.responseBody, vbUnicode)
End With
Set html = New HTMLDocument
With html
    .body.innerHTML = sResponse
    Debug.Print .querySelector("#resultStats").innerText
End With

End Sub

कोड बिना किसी समस्या के काम करता है ..लेकिन तत्काल विंडो में मुझे यह समझने योग्य वर्ण नहीं मिला यहां छवि विवरण दर्ज करें

इसे अरबी अक्षरों में प्रदर्शित करने के लिए कैसे तय किया जाए?

मदद के लिए अग्रिम धन्यवाद

1
YasserKhalil 2 नवम्बर 2018, 21:08

1 उत्तर

सबसे बढ़िया उत्तर

मुझे यह सूत्र मिला: VBA - स्ट्रिंग को यूनिकोड में बदलें, और एक समाधान निकालने में कामयाब (यह मेरे लिए पोलिश पात्रों के साथ काम करता है, अरबी के बारे में निश्चित नहीं है)

Private Const CP_UTF8 = 65001

Private Declare Function MultiByteToWideChar Lib "kernel32" ( _
   ByVal CodePage As Long, ByVal dwFlags As Long, _
   ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, _
   ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long

Public Sub GetResultsCount()
Dim sResponse As String 
Dim html      As HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", "https://www.google.com/search?q=mitsubishi", False
    .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
    .send
    sResponse = StrConv(.responseBody, vbUnicode)
End With
Set html = New HTMLDocument

html.body.innerHTML = sResponse
Debug.Print sUTF8ToUni(StrConv(html.querySelector("#resultStats").innerText, vbFromUnicode))
End Sub

Public Function sUTF8ToUni(bySrc() As Byte) As String
   ' Converts a UTF-8 byte array to a Unicode string
   Dim lBytes As Long, lNC As Long, lRet As Long

   lBytes = UBound(bySrc) - LBound(bySrc) + 1
   lNC = lBytes
   sUTF8ToUni = String$(lNC, Chr(0))
   lRet = MultiByteToWideChar(CP_UTF8, 0, VarPtr(bySrc(LBound(bySrc))), lBytes, StrPtr(sUTF8ToUni), lNC)
   sUTF8ToUni = Left$(sUTF8ToUni, lRet)
End Function
4
Kirszu 2 नवम्बर 2018, 19:32