دسته بندی ها
19:33 1401/09/05

ذخیره علامت سوال به جای حروف فارسی در Sql Server

مشخصات سوال کننده :
کاربر : Mohammadrafiee     امتیاز کاربر : ‎−1     رتبه کاربر : 7108
دسته بندی : Asp.net Core Sql Server

به این سوال امتیاز بدهید    ‎−1
تعداد بازدید این سوال : 3311
1 نظر
mojtabahakimian : این لینک رو ببین : . https://stackoverflow.com/questions/21604657/arabic-character-on-php-and-mysql

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 00:44 1401/09/06
هوش مصنوعی

پاسخ هوش مصنوعی

مشکل شما احتمالاً به تنظیمات مربوط به کدگذاری و Collation در دیتابیس شما برمی گردد. برای حل این مشکل، مراحل زیر را دنبال کنید:

1. **بررسی نوع دیتابیس**: مطمین شوید که جدول و ستون هایی که برای ذخیره حروف فارسی استفاده می کنید، دارای نوع داده مناسب مانند `nvarchar` یا `nchar` هستند. این نوع داده ها برای ذخیره کاراکترهای یونیکد مناسب هستند.

2. **تنظیم Collation**: باید Collation جداول و ستون های مربوطه را به یک نوع حمایتی برای حروف فارسی مانند `Persian_CI_AS` تغییر دهید. می توانید این کار را با اجرای این دستور SQL انجام دهید:


ALTER TABLE YourTableName
ALTER COLUMN YourColumnName NVARCHAR(255) COLLATE Persian_CI_AS;

همچنین، می توانید تنظیم Collation بانک اطلاعاتی را هم به این شکل تغییر دهید:


ALTER DATABASE YourDatabaseName COLLATE Persian_CI_AS;

3. **استفاده از UTF-8**: اگر از MySQL استفاده می کنید، اطمینان حاصل کنید که دیتابیس، جدول و ستون ها با استفاده از `utf8mb4` کدگذاری شده اند. برای این کار می توانید از دستورات زیر استفاده کنید:


ALTER DATABASE YourDatabaseName CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE YourTableName CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4. **بررسی لایه نرم افزاری**: همچنین، اطمینان حاصل کنید که در لایه ASP.NET Core MVC نیز از کدگذاری مناسب استفاده می کنید. برای مثال، در هنگام ارسال و دریافت داده از فرم ها، مطمین شوید که نوع محتوا `application/x-www-form-urlencoded` یا `application/json` به درستی پیکربندی شده است.

با انجام این مراحل، باید مشکل ذخیره حروف فارسی برطرف شود.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 09:27 1401/09/07

سلام این سوال قبلا پرسیده شده و پاسخ داده شده. لینک زیر رو مطالعه کنید:

ذخیره کاراکترهای فارسی به صورت علامت سوال

به این پاسخ امتیاز بدهید    ‎−2
امتیاز: 1664 رتبه: 1
پاسخ دهنده : pedram_khan 09:31 1401/09/07

ای کاش سوالتون رو کاملتر می پرسیدید. علامت سوال در دیتابیس ذخیره میشه ؟ یا فقط موقع نمایش توی سایت علامت سوال نشون میده ؟

اگر در دیتابیس به صورت علامت سوال ذخیره میشه بخاطر unicode هست. شما موقعی که دیتابیس خودتون رو ایجاد می کردید باید Collation رو به صورت Persian_CI_AI در نظر می گرفتید. دقت کنید موقع ایجاد دیتابیس نه الان که دیتابیس خودتون رو ایجاد کردید.

حالا برای رفع این مشکل کاراکترهای فارسی رو به صورت زیر ذخیره کنید :

Insert Into Users (FirstName, Family) Values (N'حسن', N'حسنی')

حرف N کاراکترهای فارسی رو به صورت یونیکد شده ذخیره میکنه.

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
1 نظر
Mohammadrafiee : نه وقتی دیتا رو از phpmyadmin به صورت دستی وارد میکنم مشکل نداره وقتی با اپلیکیشن دیتا ثبت میکنم تو دیتابیس به جای حروف فارسی علامت سوال میفته

امتیاز کاربر : ‎−1   رتبه کاربر : 7108   تاریخ ثبت : 11:45 1401/09/07
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود