2012-04-24 53 views
1

我試圖使用google api作爲文本到語音轉換。所以,我建立一個字符串,然後應該將它作爲一個URL傳遞給一個組件,以獲得一個帶有口語單詞的MP3。 所以,這是我的代碼:作爲字符串返回的URL在JSF中無效

URI uri = new URI("http://translate.google.com/translate_tts?tl=es&q="+ URLEncoder.encode((String)this.text.getValue(), "UTF-8")); 

當我做uri.toString()它的回報也形成URL。如果我在瀏覽器中複製並粘貼此輸出,則完美地工作。 但是,如果我將此返回的字符串分配給ice的源屬性:outputMedia不起作用。然後檢查在頁面生成的HTML和SRC屬性的字符串是:

http://translate.google.com/translate_tts?tl=es&q=Bobby+need+peanuts 

的&標誌已取代&

我該如何避免這種情況才能生成有效的URL?

+0

+1爲谷歌文本轉語音提示! – Alberto 2012-04-25 18:04:16

+0

謝謝!試一試!它工作出色!如果您可以正確構建URL字符串,那麼je – Fisu 2012-04-25 18:12:45

回答

0

您需要decode客戶端使用Javascript的網址。

var decoded = decodeURI(URI) 
+0

如何解碼從託管bean返回的字符串,然後將其放入組件的源中?任何想法? – Fisu 2012-04-25 18:14:37

+0

Java URIDecoder http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html#URLDecoder%28%29 – eabraham 2012-04-25 19:23:13

+0

如果我在返回它之前在字符串中使用此方法,則什麼都不會發生,當我看到代碼時頁面中的字符串仍然是'&'而不是& – Fisu 2012-04-26 14:06:47

相關問題