2015-02-03 2 views
0

Короче говоря, в качестве теста я читаю данные из одной ячейки в рутину, которая отправляет неанглийские слова/символы переводчику 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 

Любая помощь приветствуется.

Спасибо, Стив

+1

Это Unicode/ASCII вещь прочитать [это] (http://blog.nkadesign.com/2013/vba-unicode-strings-and-the-windows-api/) –

ответ

0

Очень поздно, чтобы опубликовать ответ, но это может быть так.

Необходимо изменить языковые настройки в Windows, чтобы VBA мог получить доступ к языку, на котором вы работаете.

Следуйте ниже (за исключением части реестра), и все должно быть в порядке.

How To Display Foreign Characters In Excel VBE

Смежные вопросы