Não é possível obter o texto utf-8 correto do Access

Quando tentei obter caracteres chineses do database, recebi texto estranho. Eu tentei quase tudo, como html_entity_decode , htmlentities , salve o arquivo usando utf-8, codifique no utf-8, mas não consigo entender.

Como faço para obter o texto correto?

Aqui está o meu código:

  $a,"second"=>$b,"third"=>$c); echo json_encode($rows); ?> 

ps: Estou usando a versão tradicional chinesa do MS Office.

Eu encontrei essa questão há um tempo e a única maneira de conseguir que funcionasse era escrever o HTML em um object ADODB.Stream , salvá-lo em um arquivo e, em seguida, echo o arquivo:

 < ?php define("TEMP_FOLDER", "C:\\__tmp\\"); header('Content-Type: text/html; charset=utf-8'); $stm = new COM("ADODB.Stream") or die("Cannot create COM object."); $stm->Type = 2; // adTypeText $stm->Charset = 'utf-8'; $stm->Open(); $stm->WriteText(''); $stm->WriteText(''); $stm->WriteText(''); $stm->WriteText('ADODB test'); $stm->WriteText(''); $stm->WriteText(''); $con = new COM("ADODB.Connection"); $con->Open( "Driver={Microsoft Access Driver (*.mdb, *.accdb)};" . "Dbq=C:\\Users\\Public\\Database1.accdb"); $rst = $con->Execute("SELECT word FROM vocab WHERE ID=3"); $stm->WriteText($rst->Fields("word")); $rst->Close(); $con->Close(); $stm->WriteText(''); $stm->WriteText(''); $tempFile = TEMP_FOLDER . uniqid("", TRUE) . ".txt"; $stm->SaveToFile($tempFile, 2); // adSaveCreateOverWrite $stm->Close(); echo file_get_contents($tempFile); unlink($tempFile); ?>