L'affichage de texte à partir de ressources.resx en JavaScript
C'est un exemple de code dans ASP.NET MVC 3 Rasoir:
@section header
{
<script type="text/javascript">
$(function() {
alert('@Resources.ExampleCompany');
});
</script>
}
<div>
<h1>@Resources.ExampleCompany</h1>
</div>
Le code ci-dessus, c'est juste un exemple, mais il montre aussi mon problème avec l'encodage. Cette variable @Ressources.ExampleCompany est un fichier ressources.resx avec la valeur ExampleCompany = "Twoja firma /Twój biznes"
En JavaScript, l'alerte indique le "Twoja firma /Twój biznes
".
Pourquoi, c'est le caractère '-' 'ó'? Ce que je fais mal?
Dans la balise HTML, <h1>@Resources.ExampleCompany</h1>
s'affiche correctement.
Mise à JOUR:
Marque Schultheiss a écrit une bonne idée et mon "laid solution" est:
var companySample = "@Resources.ExampleCompany";
$('#temp').append(companySample);
alert($('#temp').text());
Maintenant, le personnage est ó
et semble bon, mais ce n'est toujours pas réponse à ma question.
OriginalL'auteur stitch7c0 | 2012-02-08
Vous devez vous connecter pour publier un commentaire.
Selon Le Codage HTML des Cordes ASP.NET Formulaires Web VS Moteur de Vue Razor, le
@
automatiquement la syntaxe HTML code et la solution est d'utiliser leRaw
à l'extension de la méthode (par exemple,@Html.Raw(Resources.ExampleCompany)
) pour décoder le code HTML. Essayez et laissez-nous savoir si cela fonctionne.Mise à jour pour essayer du côté serveur.
aussi n'aide pas 🙁
Est la page de sortie spécifié en tant que UTF-8 dans les en-têtes?
Non, mais des fichiers est encoder en UTF-8 et browers utiliser correctement l'encodage (UTF-8). C'est par défaut mvc3 projet, je n'ai pas de changement de paramètre d'encodage
OriginalL'auteur pete
Certains de cela dépend de CE que vous faites avec le texte.
Par exemple, en utilisant les balises:
Et le code (puisque vous êtes à l'aide de jQuery):
Dans le navigateur, le "résultat" de la balise montre à la fois correctement (comme vous le désirez) tandis que les "autres" montre avec le caractère d'échappement. Et les DEUX alertes de le montrer avec le caractère d'échappement.
Voir ici par exemple: http://jsfiddle.net/MarkSchultheiss/uJtw3/.
OriginalL'auteur Mark Schultheiss
J'ai eu le même problème, mais dans mon cas, j'ai été l'attribution d'une valeur à partir de Ressources à la variable javascript. Il y a le même problème avec la lettre - encodage. Par la suite, cette variable a été lié à un objet html (parlant précisément par knock-out de liaison). Dans ma situation, code ci-dessous donne un truc:
OriginalL'auteur Otishone
Je utiliser l'astuce suivante:
Peut-être que ça va aider.
Mise à JOUR
J'ai testé ce comportement de Rasoir plus à fond et j'ai trouvé que:
1.Lorsque le texte est mis en tant que teneur normale en html puis @Html.Raw méthode permet simplement et écrit char '-' sans codage html (pas comme: ó)
exemple:
exemple:
2.Mais si il est mis à l'intérieur des balises html comme attribut, Rasoir convertit: ó et @Html.Raw n'aide pas à tous les
exemple:
Yo pouvez y remédier en mettant la balise entière de la Ressource (comme dans ce post) ou chaîne (comme dans mon exemple)
Donc, parfois, quelqu'un pourrait avoir été peu perturbé par le fait que les réponses qui aide les autres mais pas lui.
OriginalL'auteur Bronek