Preprečevanje japonskega izhoda kot HTML dejanskega sklica na pogoj (glejte številčne znake)
Okolje
- Vizualni studio
-
- Vizualni studio 2019
- ASP.NET Core
-
- 3.1 (Stran z britvicami, MVC)
Japonsko dinamično razporejanje v programu je izhod kot sklic na dejansko stanje.
Prikažimo tiste, ki so vnesli japonščino neposredno v in tiste, ki izstopajo japonščino z Index.cshtml
uporabo ViewData, kot sledi.
<!-- 省略 -->
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
<p>ここに固定文字列の日本語を表示させます。</p>
<p>@ViewData["Message"]</p>
Na strani programa nastavite japonščino na ViewData.
Index.cshtml.cs (za strani z britvicami)
// 省略
public class IndexModel : PageModel
{
// 省略
public void OnGet()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
DomovKontrolerji .cs (za MVC)
// 省略
public class HomeController : Controller
{
// 省略
public IActionResult Index()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
Ko zaženem odpravljanje napak, sta oba pravilno prikazana v japonščini.
Če pa pogledate vir strani v spletnem brskalniku, lahko vidite, da je japonski izhod v viewData izhod s sklicem v realnem svetu (glejte številčne znake).
Sklic v realnem svetu (glej numerične znake) je alfanumerični alternativni znak, ki se uporablja, ko želite predstavljati Unicode znake v okolju, ki lahko obdela samo alfanumerične znake ali prikaže le določene jezike. Črka "a" je na primer »あ« v dejanski referenci stanja (glejte #x3042 znakov). bo prikazana kot .
Tipični spletni brskalnik kodi in pravilno prikaže znake, tudi če html vsebuje sklice v realnem svetu. Uporabniki se pogosto ne zavedajo dejanskih sklicev na stanje.
V bistvu se pravilno prikaže v spletnem brskalniku, tako da ni težav, kot je. Ker število znakov izhod poveča in je težko brati, ko gleda HTML med razvojem, je lahko izhod v japonščini, kot je na naslednji način.
Preprečite tiskanje japonščine s sklici v realnem svetu (glejte številčne znake)
Če želite začeti.cs datoteki dodajte kodo na naslednji način:
// 追加
using Microsoft.Extensions.WebEncoders;
using System.Text.Encodings.Web;
using System.Text.Unicode;
// 省略
public class Startup
{
// 省略
// このメソッドはランタイムによって呼び出されます。 このメソッドを使用して、コンテナーにサービスを追加します。
public void ConfigureServices(IServiceCollection services)
{
// 省略
// 全ての文字をが実態参照で出力されないようにする
// 全てではなく特定の範囲のみをエンコードさせたくない場合は UnicodeRanges.All のプロパティを個別に設定します。
services.Configure<WebEncoderOptions>(options =>
{
options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All);
// 個別に設定する場合 (例)
//options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.Hiragana, UnicodeRanges.Katakana);
});
}
// 省略
}
Startup.ConfigureServices
Pri services.Configure<WebEncoderOptions>
metodi pokličite metodo,
Nastavite options.TextEncoderSettings
TextEncoderSettings
primerek za .
Če nastavite argument, vsi znaki ne bodo pretvorjeni v sklicevanja v realnem svetu in bodo izhodni, kot UnicodeRanges.All
je.
Če določite posamezne obsege, ki jih ne želite pretvoriti, boste določili eno ali več UnicodeRanges.All
drugih vrednosti.
Vendar pa, v bistvu, razen če imate poseben razlog, boste morda UnicodeRanges.All
želeli določiti .
Če ga dejansko zaženete in potrdite, lahko vidite, da je japonščina izhod neposredno brez sklicevanje na dejansko stanje.