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 が正しくエンコードされた GET リクエストを Google 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 が返すのは、「ウムラウテ」を Übermensch ではなく、A~1/4bermensch のように綴る MP3 ファイルです。この問題は、クライアント側とは関係ありません。

Google は ASCII 文字列を想定していると思いますが、これは私の問題でしょうか? ただし、ブラウザーに GET 行を手動で入力すると、すべてが正しく綴られます。以下も参照してください。

stackoverflow - アラビア語、中国語、ギリシャ語用の Google TTS API

手伝ってくれてありがとう!!

4

1 に答える 1

0

エンコーディング URL パラメータ &ie=utf-8 と Python ファイル自体のエンコーディングを #coding: utf-8 に設定する必要があります。 )。

于 2015-08-21T12:05:23.040 に答える