اصل حالت حوالہ سے بطور ایچ ٹی ایم ایل جاپانی پیداوار روکیں (عددی حروف ملاحظہ کریں)

صفحہ تخلیق تاریخ :

ماحول

بصری سٹوڈیو
  • ویژیول سٹوڈیو 2019
ASP.NET کور
  • 3.1 (ریزر صفحہ، ایم وی سی)

پروگرام میں متحرک طور پر ترتیب دیا گیا جاپانی اصل صورتحال کے حوالے سے پیداوار ہے۔

آئیے ان لوگوں کو دکھاتے ہیں جو براہ راست جاپانی وں میں داخل ہوئے اور جو ویو ڈیٹا کا استعمال کرتے ہوئے جاپانیوں کو Index.cshtml آؤٹ پٹ کرتے ہیں۔

<!-- 省略 -->

<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>

پروگرام کی طرف، جاپانی کو ویو ڈیٹا پر سیٹ کریں۔

اشاریہ.سی ایس ایچ ٹی ایم .cs (ریزر صفحات کے لیے)

// 省略

public class IndexModel : PageModel
{
  // 省略

  public void OnGet()
  {
    ViewData["Message"] = "ViewData から日本語を表示させます。";
  }
}

ہوم کنٹرولر .cs (ایم وی سی کے لئے)

// 省略

public class HomeController : Controller
{
  // 省略

  public IActionResult Index()
  {
    ViewData["Message"] = "ViewData から日本語を表示させます。";
  }
}

جب میں ڈی بگنگ چلاتا ہوں تو دونوں کو جاپانی زبان میں صحیح طور پر دکھایا جاتا ہے۔

تاہم، اگر آپ ویب براؤزر میں صفحے کے ماخذ کو دیکھیں، تو آپ دیکھ سکتے ہیں کہ ویو ڈیٹا میں جاپانی آؤٹ پٹ حقیقی دنیا کے حوالہ کے ساتھ آؤٹ پٹ ہے (عددی حروف دیکھیں)۔

حقیقی دنیا کا حوالہ (عددی حروف دیکھیں) ایک الفانیومرک متبادل کردار ہے جو اس وقت استعمال کیا جاتا ہے جب آپ ایسے ماحول میں یونیکوڈ کرداروں کی نمائندگی کرنا چاہتے ہیں جو صرف حروف عددی حروف پر عمل کر سکتا ہے یا صرف مخصوص زبانوں کو دکھا سکتا ہے۔ مثال کے طور پر، اصل صورتحال کے حوالہ میں حرف "#x3042؛" ہے (دیکھیں #x3042 حروف)۔ اسے بطور دکھایا جائے گا۔

ایک عام ویب براؤزر حروف کو انکوڈ کرتا ہے اور صحیح دکھاتا ہے چاہے ایچ ٹی ایم ایل حقیقی دنیا کے حوالہ جات کا حامل ہو۔ صارفین اکثر اصل صورتحال کے حوالے سے ناواقف ہوتے ہیں۔

بنیادی طور پر، یہ ایک ویب براؤزر میں صحیح طور پر دکھایا جاتا ہے, تو کوئی مسئلہ نہیں ہے جیسا کہ یہ ہے. چونکہ حروف کی پیداوار کی تعداد میں اضافہ ہوتا ہے اور ترقی کے دوران ایچ ٹی ایم ایل کو دیکھتے وقت پڑھنا مشکل ہوتا ہے، اس لئے یہ جاپانی زبان میں آؤٹ پٹ ہوسکتا ہے جیسا کہ یہ درج ذیل طریقے سے ہے۔

جاپانیوں کو حقیقی دنیا کے حوالہ جات کے ساتھ چھپنے سے روکیں (عددی حروف دیکھیں)

شروع کرنے کے لیے.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.ConfigureServicesservices.Configure<WebEncoderOptions>طریقہ میں، طریقہ کال کریں، options.TextEncoderSettingsکی مثال قائم کریں TextEncoderSettings ۔

اگر آپ دلیل مقرر کرتے ہیں تو تمام حروف حقیقی دنیا کے حوالہ جات میں UnicodeRanges.All تبدیل نہیں ہوں گے اور جیسا ہے ویسا ہی آؤٹ پٹ ہوگا۔

اگر آپ انفرادی حدود کا اختصاص کرتے ہیں جو آپ تبدیل نہیں کرنا چاہتے UnicodeRanges.All تو آپ ایک یا ایک سے زیادہ دیگر اقدار کا اختصاص کریں گے۔ تاہم، بنیادی طور پر، جب تک آپ کے پاس کوئی خاص وجہ نہ UnicodeRanges.All ہو، آپ اختصاص کرنا چاہیں گے۔

اگر آپ واقعی اسے چلاتے ہیں اور اس کی تصدیق کرتے ہیں، تو آپ دیکھ سکتے ہیں کہ جاپانی اصل صورتحال کا حوالہ لئے بغیر براہ راست پیداوار ہے۔