Короче говоря, в качестве теста я читаю данные из одной ячейки в рутину, которая отправляет неанглийские слова/символы переводчику Microsoft. По возвращении он записывает результаты в отдельную ячейку. К сожалению, поскольку у меня нет опыта работы с XMLHTTP, я ударяю головой об этом.Результат перевода в Китае - это вопросительные знаки (???? ...)
Это обыкновенная ваниль. Теперь вот длинная версия. Надеюсь, я сделаю это достаточно ясно. Простите меня, но помните, что я новичок в этой стороне VBA ...
Я пытаюсь использовать рутину, разработанную Microsoft и отредактированную парнем по имени Патрик О'Бейрн, поскольку способ, которым Microsoft обрабатывает токены по-видимому, изменился .. Код Патрика находится здесь: http://www.sysmod.com/MSTranslator.bas.
Длинная версия ... Я ищу для загрузки китайских данных в подпрограмму, которая использует MSXML2.XMLHTTP для выполнения GET на своем пути в Microsoft для перевода.
Эта рутина прекрасно работает на испанском или французском языке, но выплескивает вопросительные знаки для китайских символов. Это может иметь отношение к тому, что китайские символы являются двубайтными (?) ...
Вот код. Я проследил все это до функции MSHttpRequest. Похоже, что он загружает данные в oH, но когда он возвращается к oH.ResponseText, смена символа. Это чисто догадка с моей стороны.
В любом случае, моя цель - отправить китайские символы на сервер переводов Microsoft и вернуть его на английском языке.
Function MSHttpRequest(sRequest As String) As String
Dim sURL As String, oH As MSXML2.XMLHTTP, sToken As String
sURL = "http://api.microsofttranslator.com/V2/Http.svc/" & sRequest
sToken = GetAccessToken()
Set oH = CreateObject("MSXML2.XMLHTTP")
oH.Open "GET", sURL, False
oH.setRequestHeader "Authorization", "Bearer " & sToken
oH.send
MSHttpRequest = oH.responseText
Set oH = Nothing
End Function
Любая помощь приветствуется.
Спасибо, Стив
Это Unicode/ASCII вещь прочитать [это] (http://blog.nkadesign.com/2013/vba-unicode-strings-and-the-windows-api/) –