0
固定。感謝傑克提供了非常棒的解決方案。請查看前端www.papertiger.net.nz/flashcard/包含中文字符的查詢字符串由curl錯誤地解釋
該代碼旨在從translate.google.com中獲取單箇中文字符的mp3。我正在使用該腳本來解決谷歌跨域策略。我試過urlencode,rawurlencode,utf8_encode,utf8_encode和urlencode以及curl_escape的組合,它看起來不像我的服務器上安裝的php。
下面的代碼:
<?php
$q=$_GET['url'];
header('Content-Type: audio/mp3');
$curl=curl_init();
$q= utf8_encode($q);$filename=utf8_encode("http://translate.google.com/translate_tts?tl=zh_CN&q=");
$filename=$filename.urlencode($q);
curl_setopt($curl, CURLOPT_URL, $filename);
$voice = curl_exec($curl);
curl_close($curl);
echo $voice;
?>
你可以聽的結果here。它應該更接近「太陽」。雖然你可以看到here,但如果我有php echo $ filestring而不是$ voice,則鏈接格式正確,並且工作正常。簡單的重定向也會給出相同的結果,但不適合我的目的。
用您建議的代碼替換我的代碼。它仍然在說「A」,如http://www.papertiger.net.nz/flashcard/gLoad.php?url=%E4%B8%89。我有一種感覺,它與我的網絡主機有關,但我不知道該怎麼問他們去尋找/修復 – urbanvintner
@urbanvintner不用擔心,加油!:) –