我有一个UIWebView,我在其中显示带有外语内容的HTML文件(在本例中为法语),由Google翻译。
原始英文文本是:
清除 - 用于停止所有计时器并清除显示到远处的金额 观点的权利。
Google的翻译是这样的:
Effacer - permetd'arrêter在les minuteries et effacer les montantsindiquésàl'extrêmedroitede la vue。
当法语是本地化语言时,这就是iPhone模拟器中显示的内容:
这是我用来加载它的代码:
// determine what the language for this locale is...
NSString *sysLangCode = [[NSLocale preferredLanguages] objectAtIndex:0];
// contatenate the language code to the filename
NSURL *indexURL = [[NSBundle mainBundle] URLForResource: [NSString stringWithFormat:@"instRST-%@", sysLangCode]
withExtension:@"html"];
// load it...
[webView loadRequest:[NSURLRequest requestWithURL:indexURL]];
我已经在Google,SO和UIWebView中查找了可以正确渲染此设置的任何设置。使用的字体是Verdana。
我需要做些什么才能正确渲染?
答案 0 :(得分:12)
我找到了答案:见http://webdesign.about.com/od/localization/l/blhtmlcodes-fr.htm
这是您必须用于法语和其他单字符语言的元标记:
<meta http-equiv="content-type" content="text/html;charset=utf-8">
这适用于所有语言,包括日语和中文等双字符语言。
答案 1 :(得分:0)
尝试将html加载到字符串中(您必须知道文件的编码)
NSString *indexPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"instRST-%@", sysLangCode] ofType:@"html"];
// use correct encoding
NSString *content = [NSString stringWithContentsOfFile:indexPath encoding:NSUTF8StringEncoding error:nil];
[webView loadHTMLString:content baseURL:nil];