2

- - 解决了 - -

问题解决了。解决方法很简单:

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

感谢帮助!!

4

1 回答 1

0

您必须将编码 URL 参数 &ie=utf-8 和 python 文件本身的编码设置为:#coding: utf-8 并确保使用 utf-8 编码保护 .py 文件(不是 iso-8859-1 )。

于 2015-08-21T12:05:23.040 回答