iOS UIWebView无法正确呈现外语

时间:2012-09-06 20:42:06

标签: ios uiwebview

我有一个UIWebView,我在其中显示带有外语内容的HTML文件(在本例中为法语),由Google翻译。

原始英文文本是:

  

清除 - 用于停止所有计时器并清除显示到远处的金额   观点的权利。

Google的翻译是这样的:

  

Effacer - permetd'arrêter在les minuteries et effacer les   montantsindiquésàl'extrêmedroitede la vue。

当法语是本地化语言时,这就是iPhone模拟器中显示的内容: rendering of French translation in UIWebView

这是我用来加载它的代码:

//  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。

我需要做些什么才能正确渲染?

2 个答案:

答案 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];