角度翻译消毒/逃脱

时间:2015-10-14 09:41:00

标签: javascript angularjs sanitization angular-translate

我有一个奇怪的或可能有意的角度翻译行为 我们的价值战略是

$translateProvider.useSanitizeValueStrategy('sanitize');

我们在应用程序中主要使用翻译过滤器,但是当谈到特殊字符时,我们会得到例如Ü berschrift 之类的Überschrift
如果我使用它的指令它 如果我使用过滤器,这仅在清理策略设置为“转义”时才有效。

是否有其他解决方案,而不是将所有翻译过滤器重写为指令?

这是我的plnkr http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v

供您参考, 我不能简单地使用“转义”策略,因为我们也使用角度转换变量,这些变量有时甚至包含html标签。

谢谢!

1 个答案:

答案 0 :(得分:13)

使用sanitizeParameters代替sanitize。这是固定的plnkr:http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview

编辑:07/10/2016 ):两种消毒策略之间存在显着差异。 sanitizeParameters清除插值参数而不是翻译输出。这意味着它不允许更改这些参数,但翻译的内容仍然容易受到攻击,因为它没有被清理。

sanitize和UTF-8字符的问题是一个已知问题,我相信它正在进行中。