Zabránenie japonskému výstupu vo formáte HTML v odkaze na skutočnú podmienku (pozri číselné znaky)
Životné prostredie
- Vizuálne štúdio
-
- Visual Studio 2019
- ASP.NET jadro
-
- 3.1 (Britva strana, MVC)
Japončina dynamicky usporiadané v programe je výstup ako odkaz na skutočnú situáciu.
Index.cshtml
Zobrazme tie, ktoré zadali japončinu priamo do a tie, ktoré výstup japončiny pomocou ViewData takto.
<!-- 省略 -->
<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 strane programu nastavte japončinu na ViewData.
Index.cshtml.cs (pre strany Britvy)
// 省略
public class IndexModel : PageModel
{
// 省略
public void OnGet()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
HomeController .cs (pre MVC)
// 省略
public class HomeController : Controller
{
// 省略
public IActionResult Index()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
Po spustení ladenia, obe sú zobrazené v japončine správne.
Avšak, ak sa pozriete na zdroj stránky vo webovom prehľadávači, môžete vidieť, že japonský výstup v ViewData je výstup s odkazom reálneho sveta (pozri číselné znaky).
Odkaz v reálnom svete (pozri číselné znaky) je alfanumerický alternatívny znak, ktorý sa používa, ak chcete reprezentovať znaky Unicode v prostredí, ktoré dokáže spracovať iba alfanumerické znaky alebo zobraziť iba určité jazyky. Napríklad písmeno "a" je "あ" v odkaze na skutočnú situáciu (pozri #x3042 znakov). zobrazí sa ako .
Typický webový prehľadávač kóduje a zobrazuje znaky správne, aj keď html obsahuje odkazy v reálnom svete. Používatelia často nevedia o skutočnej situácii odkazy.
V podstate sa zobrazuje správne vo webovom prehľadávači, takže nie je žiadny problém, ako to je. Vzhľadom k tomu, počet znakov výstup zvyšuje a je ťažké čítať pri pohľade na HTML počas vývoja, to môže byť výstup v japončine, ako je to nasledujúcim spôsobom.
Zabránenie tlači japončiny s odkazmi na reálny svet (pozri číselné znaky)
Ak chcete .cs stačí pridať kód do súboru takto:
// 追加
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
V services.Configure<WebEncoderOptions>
metóde zavolajte metódu,
options.TextEncoderSettings
Nastavte TextEncoderSettings
inštanciu na .
Ak nastavíte UnicodeRanges.All
argument, všetky znaky sa neskonvertujú na odkazy v reálnom svete a budú výstupné tak, ako sú.
Ak zadáte jednotlivé rozsahy, ktoré nechcete UnicodeRanges.All
konvertovať, určíte jednu alebo viac ďalších hodnôt.
Ak však nemáte konkrétny UnicodeRanges.All
dôvod, možno budete chcieť zadať .
Ak ho skutočne spustíte a potvrdíte, môžete vidieť, že japončina je výstup priamo bez odkazu na skutočnú situáciu.