- - 解决了 - -
问题解决了。解决方法很简单:
file_get_contents("http://translate.google.com/translate_tts?tl=de&q=".urlencode($str)."&ie=UTF-8")
对于那些来自搜索引擎的人:确保将文件字符集设置为 UTF-8,在 URL 中包含 ie=UTF-8 参数,对字符串进行 urlencode。那时一切都应该没问题。
原帖是:
我在让 PHP 向 Google TTS API 发送正确编码的 GET 请求时遇到问题。
$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 文件,它拼写的“元音变音”不像 Übermensch,而是像 A~1/4bermensch。这个问题与客户端无关。
我认为谷歌期待一个 ASCII 字符串,这可能是我的问题?但是,当我在浏览器中手动键入 GET 行时,它会正确拼写所有内容。也可以看看:
stackoverflow - 用于阿拉伯语、中文和希腊语的 Google TTS API
感谢帮助!!