Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度转换UTF8字符(pascalprecht.translate)_Javascript_Angularjs_Utf 8_Angular Translate - Fatal编程技术网

Javascript 角度转换UTF8字符(pascalprecht.translate)

Javascript 角度转换UTF8字符(pascalprecht.translate),javascript,angularjs,utf-8,angular-translate,Javascript,Angularjs,Utf 8,Angular Translate,我在使用SanitizeValueStrategy('sanitize')时遇到UTF8字符问题。我必须使用它,因为客户端正在使用语言文件编辑文本,他可能会使用标签,如或 我只需要使用json文件进行翻译。客户端不会触摸应用程序代码来更改任何文本。JSON文件: { "H1": "Typy domů", "NAME": "Křestní" } 人们认为,这些问题只会在使用angular插值时出现: <h1 translate>houseTypes.H1</h1

我在使用
SanitizeValueStrategy('sanitize')
时遇到UTF8字符问题。我必须使用它,因为客户端正在使用语言文件编辑文本,他可能会使用标签,如

我只需要使用json文件进行翻译。客户端不会触摸应用程序代码来更改任何文本。JSON文件:

{
    "H1": "Typy domů",
    "NAME": "Křestní"
}
人们认为,这些问题只会在使用angular插值时出现:

<h1 translate>houseTypes.H1</h1>
Typy domů
houseTypes.H1
典型多姆ů
我可以使用此方法将文本放入元素的主体中,但对于属性,仍然会出现此问题

<input placeholder="'houseTypes.NAME'|translate"></h1>
K&#345;estn&#237;

Kř;estn和237;
问题是:

我如何才能正确写入UTF8字符,而仅在插值中使用JSON静态文件加载器,或者在属性中使用任何其他方式,如
占位符

,对于那些在
{{interpolations}
中找到使UTF-8字符正常的方法的人来说,这是一种方法:

$translateProvider.useSanitizeValueStrategy('sanitizeParameters');
这样,即使在插值中也会始终进行消毒。

您有两个选项:

  • 使用策略sanitizeParameters,它将只清理动态参数,而不会清理实际的翻译(模板)。如果可以控制转换(但不能控制动态值),这将起作用
  • 使用策略escape(或escapeParameters),它不使用消毒,而是使用escape
  • 对我来说,当我将SanitizeValueStrategy设置为null时,问题就解决了

    $translateProvider.useSanitizeValueStrategy(null);
    

    我看不出有什么问题。“typedomů”在我看来不错,“Křestní”是正确的。还是在实际的用户界面中显示为“Kř;estní;”@deceze它在文本中显示为转义