그들에 특수 문자와 URL을 문제 : 매개 변수 tl
언어의 언어 코드를 포함
http://translate.google.com/translate_tts?tl=%s&q=%s
당신이 변환하고자하는 텍스트가 q
에 포함되어 있습니다.구글 앱 엔진 URL을 가져올 수 - 나는 구글이 URL과 음성으로 텍스트의 일부를 변환 번역 사용하고
일반 단어 (특수 문자 제외)는 올바른 오디오 파일을 반환합니다.
이url = "http://translate.google.com/translate_tts?tl=%s&q=%s" % ('no', urllib.quote('kjendis'))
#url = http://translate.google.com/translate_tts?tl=no&q=kjendis
self.response.headers["Content-Type"] = "audio/mpeg"
self.response.out.write(urlfetch.fetch(url).content)
이 올바른 소리를 반환
그래서 내 응용 프로그램에서이 (no
노르웨이의 언어 코드) 내가 할 것입니다.
일반 webapp btw를 사용하고 있습니다.
하지만 특수 문자가 포함 된 단어 (vår)는 옳지 않습니다. 생성 된 URL은 http://translate.google.com/translate_tts?tl=no&q=v%C3%A5r
입니다. (å 올바르게 인코딩 %로 변환됩니다)
브라우저에서 해당 URL을 열 때 올바른 소리가 나지 만 urlfetch.fetch를 사용하여 동일한 URL을 읽으면 반환 된 소리가 올바르지 않습니다.
여기에 무슨 문제가 있습니까? 가져 오기가 어떻게 든 URL을 변경한다고 가정 할 수 있습니다.
'quote' 함수는 무엇입니까? 가져온 URL (예 : 자신의 앱)을 볼 수있는 일부 앱에 인코딩 된 문자열을 urlfetch하려고 했습니까? –
urllib.quote를 사용하고 있습니다. 나는 당신이 물었던 것과 그 결과가 같았습니다. URL이 변경되지 않는 것 같습니다 :/ 오류가 발생하여 문제가 무엇인지 알았습니다. 사용자 에이전트를 Firefox로 변경 한 후 예상대로 모든 작업이 수행되었습니다. 코드 샘플 http://ideone.com/qvTbb UrlOpener의 버전 특성을 변경하고 결과가 어떻게 변경되는지 들어보십시오. 또한 내 Appengine App으로 테스트했는데 실제로 문제가되는 것입니다 ... 어째서 이런 일이 일어나는 지 아십니까? 나는 좀 궁금해. –
잘 모르겠지만 일부 브라우저는 유니 코드를 잘못 인코딩한다고 가정 할 수 있습니다. 따라서 API는이를 기반으로 차별화됩니다. –