Заборонити виведення японської мови у форматі HTML за допомогою посилання на фактичну умову (див. цифри)
Середовищі
- Візуальна студія
-
- Visual Studio 2019
- ASP.NET ядро
-
- 3.1 (Сторінка бритви, MVC)
Японська динамічно впорядкована в програмі вихома в якості посилання на реальну ситуацію.
Index.cshtml
Давайте розкадемо ті, які ввели японську мову безпосередньо, і ті, які виводяться японською мовою за допомогою ViewData наступним чином.
<!-- 省略 -->
<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>
На стороні програми встановіть для японської мови ViewData.
Index.cshtml.cs (для сторінок бритви)
// 省略
public class IndexModel : PageModel
{
// 省略
public void OnGet()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
HomeController .cs (для MVC)
// 省略
public class HomeController : Controller
{
// 省略
public IActionResult Index()
{
ViewData["Message"] = "ViewData から日本語を表示させます。";
}
}
Під час налагодження обидва відображаються японською мовою правильно.
Однак, якщо подивитися на джерело сторінки у веб-браузері, то можна побачити, що японський вивід в ViewData вивід з реальним посиланням (див. числові символи).
Посилання в реальному світі (див. цифри) — це буквено-цифровий альтернативний символ, який використовується для представлення символів Юнікоду в середовищі, яке може обробляти лише букви та цифри або відображати лише певні мови. Наприклад, літера "a" має значення "あ" у посиланні на фактичну ситуацію (див. #x3042 символів). він буде відображатися як .
Типовий веб-браузер правильно кодує та відображає символи, навіть якщо html містить посилання в реальному світі. Користувачі часто не знають про фактичні посилання на ситуацію.
В основному, він відображається правильно у веб-браузері, тому немає ніяких проблем, як це є. Оскільки кількість виводу символів збільшується, і важко читати при погляді на HTML під час розробки, він може бути виведений японською мовою, як це є наступним чином.
Заборонити друк японської мови з посиланнями в реальному світі (див. цифри)
Для .cs просто додайте код до файлу наступним чином:
// 追加
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
У services.Configure<WebEncoderOptions>
методі викликати метод,
options.TextEncoderSettings
Установіть TextEncoderSettings
екземпляр значення .
Якщо ви UnicodeRanges.All
вкате аргумент, всі символи не буде перетворено на посилання в реальному світі і будуть виведені як є.
Якщо вказати окремі діапазони, які не потрібно UnicodeRanges.All
перетворювати, буде вказано одне або кілька інших значень.
Однак, в основному, якщо у вас немає UnicodeRanges.All
конкретної причини, ви можете вказати .
Якщо ви дійсно запустити його і підтвердити його, ви можете побачити, що японська вивід безпосередньо, не посилаючись на фактичну ситуацію.