用Angular/TypeScript编写字符串辅助程序

用Angular/TypeScript编写字符串辅助程序,angular,typescript,special-characters,Angular,Typescript,Special Characters,我的问题是HTML中的德语ü,ä,ö显示为未知符号。 你可以写“as”ü;“äas”ä;“等等。 但是在typescript方法中不可能用“ü;”替换ü。结果将是“ü;” 这是我在typescript中的方法,它将ü替换为“ü;” publicstringhelper(textUml:string):string{ textUml=textUml.replace(“ü”,“uuml;”); 调试器; 返回文本UML; } {{stringHelper(“H

我的问题是HTML中的德语ü,ä,ö显示为未知符号。 你可以写“as”ü;“äas”ä;“等等。 但是在typescript方法中不可能用“ü;”替换ü。结果将是“ü;”

这是我在typescript中的方法,它将ü替换为“ü;”

publicstringhelper(textUml:string):string{
textUml=textUml.replace(“ü”,“uuml;”);
调试器;
返回文本UML;
}
{{stringHelper(“Hinzufügen”)}
而不是显示“Hinzufügen”,而是显示“Hinzufü;gen”


改用正则表达式并应用
g
以便替换所有出现的值(否则,仅替换第一个“u”):


textUml=textUml.replace('/ü/g',“ü;”)

这是因为在HTML模板中使用
{{}
时,Angular会转义字符串。因此,这是您的
&
被转义的预期行为,而不是被视为HTML实体

因此,您应该让它不被替换(使用
u
),它应该可以正常工作

如果您仍然希望输入准确的HTML代码,而不是转义变量的内容,则需要这样做,然后使用
innerHTML
输出代码

在您的示例中,定义管道后,将放置:

<button class="btn btn-success" (click)="addKeySkill()">
  <span [innerHTML]="stringHelper('Hinzufügen') | keepHtml"></span>
</button>


为什么不使用
自定义管道
因为我觉得它对我来说很好-->奇怪,不是在我的电脑上你的浏览器编码一定是错误的。Umlaut是UTF-8字符。用lke
Hinzufügen
编写它应该可以。如果没有,请检查您是否以正确的编码保存了文件。看见
<button class="btn btn-success" (click)="addKeySkill()">
  <span [innerHTML]="stringHelper('Hinzufügen') | keepHtml"></span>
</button>