2013-05-14 77 views
2

---求助---Google TTS API:使用PHP編碼GET請求

問題已解決。解決方法很簡單:

file_get_contents("http://translate.google.com/translate_tts?tl=de&q=".urlencode($str)."&ie=UTF-8") 

對於那些來到這裏,從搜索引擎:請確保您的文件的字符集設置爲UTF-8,包括IE = UTF-8參數爲URL,進行urlencode您的字符串。一切都應該沒問題。

原職位是:

我有做PHP發送一個正確編碼GET請求,谷歌TTS API的一個問題。

$str='This is a German string which contains crazy Umlaute like ä (like in Häuser) or ü (like in Übermensch). Sehr deutsch halt.'; 
file_get_contents("http://translate.google.com/translate_tts?tl=de&q=".$str."&ie=UTF-8"); 

所有包含的PHP文件都以UTF-8編碼(無字節順序標記)。 Google TTS返回給我的是一個MP3文件,它表示「Umlaute」不像「Übermensch」,但像A〜1/4bermensch。這個問題與客戶端無關。

我認爲谷歌期待一個ASCII字符串,這可能是我的問題?當我手動輸入GET行到我的瀏覽器時,它會正確拼寫所有內容。另請參見:

stackoverflow - Google TTS API for Arabic, Chinese and Greek

感謝您的幫助!

回答

0

你必須設置編碼URL參數& ie = utf-8和python文件本身的編碼爲:#coding:utf-8並確保安全使用utf-8編碼的.py文件(不是ISO-8859-1)。