TiG*_*reX 4 .net c# razor razor-pages blazor
我有一个小网站,当我在网站上执行Ctrl+操作时U,UTF-8 字符无法正确打印。
\n例如,如果我尝试打印programaci\xc3\xb3n它会打印programación
仅当我打印变量的值时才会发生这种情况,当我对文本进行硬编码时不会发生这种情况。
\n例如,<div>@variable</div>打印带有编码值的内容,例如programación。但使用检查器时,值本身是programaci\xc3\xb3n。
但如果我在下面的行中编写 <div>programaci\xc3\xb3n</div>它,它就会正确打印。
我尝试使用httputlity.htmldecode但得到了相同的结果。
\n我也尝试过,meta charset=UTF-8并将文件保存.razor为UTF。就像这篇文章中指定的那样,但这些都不起作用。
有什么方法可以正确打印这些字符吗?
\n如果这很重要的话,我正在使用 .NET5。
\n默认情况下,Razor 对所有非 ASCII 字符进行编码,即基本拉丁语范围之外的字符。如果您希望保留其他范围,则需要进行配置。您可以在该方法中通过指定 Razor不应ConfigureServices编码的范围来执行此操作。您遇到问题的字符位于 Latin-1 Supplement 范围内,因此您将其包括在内:
services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new TextEncoderSettings(
UnicodeRanges.BasicLatin,
UnicodeRanges.Latin1Supplement);
});
Run Code Online (Sandbox Code Playgroud)
请注意,您在此处设置的任何内容都将覆盖默认设置,这就是您还需要包含范围的原因UnicodeRanges.BasicLatin。如果您不确定应该包含哪些字符集,可以在此处查看: http: //www.unicode.org/charts/。或者,您可以简单地指定UnicodeRanges.All.
| 归档时间: |
|
| 查看次数: |
1431 次 |
| 最近记录: |