عدم نمایش درست متن های فارسی در view source
سلام و خسته نباشید خدمت دوستان
بنده در یک پروژه به asp.net core 2.2، متن های فارسی که از دیتابیس گرفته میشه و با دستور سی شارپ نمایش میدیم، در خود سایت درست نمایش میده، در inspect هم درست نمایش میده اما در view source درست نیست و ترکیبی از حروف و اعداد انگلیسی شده. ( تصویر ها پیوست شده ) و در همین سایت پرس نت هم این مشکل وجود داره
بالای صفحه هم تگ html اینطور تعریف شده <html class="no-js" dir="rtl" lang="fa-IR">
و متاتگ <meta charset="UTF-8"> هم در header قرار داده شده اما نتونستم دلیل رو بفهمم. حتی مثلا جایی با ViewData یه title دادم به صفحه که اونم درست نمایش نمیده در view source ( در تصویر اول مشخصه )
بنده دوتا سوال داشتم، اول اینکه آیا برای سیو ضرر داره ؟ دوم اینکه بنظر شما ایراد کار کجاست ؟ خیلی ممنون از راهنمایی
پاسخ هوش مصنوعی
مشکل عدم نمایش درست متن های فارسی در view source
می تواند به یکی از دلایل زیر باشد:
- عدم صحیح بودن کدگذاری (encoding) در دیتابیس: مطمین شوید که داده های فارسی در دیتابیس با کدگذاری
UTF-8
ذخیره می شوند. - تنظیمات کدگذاری در پروژه ASP.NET Core: اطمینان حاصل کنید که در پیکربندی پروژه، کدگذاری
UTF-8
به طور صحیح تنظیم شده است.
در خصوص سوالات شما:
- به طور کلی، اگر متن ها به درستی ذخیره نشوند و به صورت ناخوانا در بیایند، این می تواند مشکلاتی در آینده ایجاد کند.
- ایراد اصلی ممکن است در نحوه ذخیره سازی داده ها در دیتابیس یا نحوه ارسال آن ها به مرورگر باشد. بنابراین بررسی و اطمینان از صحیح بودن کدگذاری در هر دو مرحله بسیار مهم است.
در صورت نیاز به مثال هایی از نحوه تنظیم کدگذاری یا بررسی تنظیمات، می توانید سوالات بیشتری بپرسید.
سلام و درود
این خطا نیست. کدهای Html به صورت پیش فرض فقط کاراکترهای انگلیسی رو به عنوان کاراکتر ایمن و امن میشناسه و هر کاراکتری جز انگلیسی رو به صورت هش شده نمایش میده. دلیل اصلیش هم این هست که برخی از مرورگرها جز انگلیسی با هیچ کاراکتری نمیتونن به خوبی کار کنن و ممکنه اشکالات زیادی برای نمایش صفحات سایت به وجود بیارن به همین خاطر Html میاد و این متن های فارسی یا عربی رو به صورت یک فرمت استاندارد (هش شده) تبدیل می کنه که مرورگرها و یا حتی موتورهای جستجو هم اون رو میشناسن.
البته توی هر زبان برنامه نویسی برای این کار تنظیماتی داره. مثلا اگر سایتی به PHP نوشته شده باشه شما به راحتی در قسمت View Source میتونید کاراکترهای فارسی رو ببینید. ولی در Asp.net Core به صورت پیش فرض تنظیم شده که فقط En رو امن شناسایی کنه. البته این موضوع هیچ مشکلی برای سایت شما یا موتورهای جستجو ایجاد نمیکنه و خود طراحان سایت هم ترجیح میدن به همین صورت باشه چون بسیاری از اطلاعات سایت محفوظ میمونه.
توی Asp.net Core می تونید با اضافه کردن کد زیر به کلاس Startup.cs و در متد ConfigureService این قابلیت رو بردارید.
services.AddSingleton<HtmlEncoder>(
HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.BasicLatin,
UnicodeRanges.Arabic }));
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2