2012-04-24 54 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

相关问题