utf8_encode utf8 not formato convertir javascript angularjs sanitization angular-translate

javascript - utf8 - La desinfección por conversión angular falla con los caracteres UTF



utf-8 html (2)

En Angular 1.3.x con la última versión de angular-translate. Al usar $sanitize , parece que hay problemas al usar el filtro o el servicio directamente, pero funciona al usar la directiva.

Sugerencias?

Aquí hay un ejemplo:

var myApp = angular.module(''myApp'', [ ''pascalprecht.translate'', ''ngSanitize'' ]); myApp.config(function($translateProvider) { $translateProvider.useSanitizeValueStrategy("sanitize"); $translateProvider.preferredLanguage(''en''); $translateProvider.translations(''en'', { UTF: ''öéü'', }); }); myApp.controller("myCtrl", function($scope, $translate) { $translate("UTF").then(function(trans) { $scope.UTFCTRL = trans; }); });

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular-sanitize.min.js"></script> <script src="http://rawgit.com/PascalPrecht/bower-angular-translate/master/angular-translate.min.js"></script> <div ng-app="myApp" ng-controller="myCtrl"> <div> Wrong: <h1>{{ ''UTF'' | translate }}</h1> </div> <div> Ok: <h1 translate="UTF"></h1> </div> <div> Wrong: <h1>{{ UTFCTRL }}</h1> </div> </div>

En jsfiddle: http://jsfiddle.net/gnvpo6aa/


Como se dijo en el tema gitHub

Usando SCE resuelto el problema

$translateProvider.useSanitizeValueStrategy("sce");


En este momento, tienes dos opciones:

  1. Utilice la estrategia sanitizeParameters que solo saneará los parámetros dinámicos, pero no la traducción real (plantilla). Si tiene la traducción bajo control (pero no los valores dinámicos), esto funcionará.
  2. Use la estrategia de escape (o escapeParameters ) que no usa el saneamiento sino el escape.

Descargo de responsabilidad: estoy co-mantenimiento de traducción angular.

Edición (12.01.2016): había creado esta descripción general de la matriz de todas las variantes .