WinHttpRequest POST

Я пытаюсь прочитать данные с моего онлайн-сервера MySQL, используя WinHttpRequest в VBA.

Dim objHTTP As New WinHttp.WinHttpRequest
With objHTTP
.Open "POST", "http://www.dname.com/ruski/php/getNewestPID.php", True
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=""UTF-8""".Send "PID=" & lngPID
.WaitForResponse
Debug.Print .ResponseText
End With
<?php
$PID = $_POST['PID'];

require_once ('config.php');

if(!$PID>0){
die("##### Error: getNewestPID failed - PID='" . $PID . "'  #####");
}

$phrases = mysql_query("SELECT * FROM phrases WHERE (PID > '$PID')");

if(!$phrases){
die("##### Error: getNewestPID SELECT failed - PID=" . $PID . " - " . mysql_error() . "  #####");
}

mysql_close($db);

echo "data=";
while($row = mysql_fetch_array($phrases)) {
echo $row[0] . "|" . $row[1] . "|" . $row[2] . "|" . $row[3];
}
?>

Все работает хорошо, но кириллический текст возвращается как:

data = 21361 | 105 || Ð? Ð ° Ð »Ñ? Ñ? ик игÑ? Ð ° еÑ? нР° ÐÐпке в ÐÐоев комнР° Ñ? Ð?

Мой БД использует UTF-8 Unicode. Я знаю, что кириллица работает в таблицах и формах, но просматривает ненужные в редакторе VB.

Я попробовал это:

Set FileStream = CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1 'Binary
FileStream.Write objHTTP.ResponseBody
FileStream.Position = 0
FileStream.Type = 2 'adTypeText
FileStream.Charset = "Windows-1251"  ' https://msdn.microsoft.com/en-us/library/ms526296(v=exchg.10).aspx
strText = FileStream.ReadText
FileStream.Close

заканчивая с мусором в записи:

ВНИМАНИЕ, ЧТОБЫ ОБРАТИТЬСЯ, ЧТОБЫ ОБРАТИТЬСЯ.

Лучший результат с:

mb_convert_encoding ($ row [3], «Windows-1251», «UTF-8»)

Какое-то время в мире.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]