iPhone SDK - Google TTS 和编码
我正在开发一个支持多语言的文本转语音 iPhone 应用程序。
这是我的英语请求 URL
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=en&q=hello";
,上面的 url 没有问题
,但是对于中文,
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=zh-TW&q=你好";
我知道上面的 url 会给出“Bad URL”,所以我使用 follow 方法将字符串编码为 UTF-8
requestUrlStr = [requestUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
它将变成
http://www.translate.google.com/translate_tts?tl=zh-CN&q=%E4%BD%A0%E5%A5%BD
那么 Google TTS 无法识别这个中文文本。
I am developing a text-to-speech iphone app that support multi-languages.
Here is my request URL
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=en&q=hello";
for english the above url has no problem
but for Chinese
requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=zh-TW&q=你好";
I know the above url will give 'Bad URL', so I used follow method to encode the string into UTF-8
requestUrlStr = [requestUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
It will become
http://www.translate.google.com/translate_tts?tl=zh-CN&q=%E4%BD%A0%E5%A5%BD
Then the Google TTS cannot recognize this Chinese text.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须假装是 NSURLRequest 中的默认用户代理(appName 等)之外的用户代理。试试这个(我使用希腊语)...
更新 2017
由于我们最喜欢的公司喜欢更新和弃用某些东西,所以上面的示例现在应该是这样...
.. .delegate:nil delegateQueue:[NSOperationQueue mainQueue]
可以省略。You have to pretend to be a User-Agent other than the default (appName, etc) in your NSURLRequest. Try this (I use Greek language) ...
UPDATE 2017
Since our favorite companies enjoy to update and deprecate things, here is the above example as it should be now...
The
...delegate:nil delegateQueue:[NSOperationQueue mainQueue]
can be omitted.