رفتن به مطلب
masoume

جایگزینی "ی" عربی با فارسی

پست های پیشنهاد شده

سلام

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

دستور

 

 

 

update poems set شعر = replace شعر nchar(1740),nchar(1610)


استفاده کردم replace رو ارور گرفت .

 

کسی میدونه چطوری میشه این کارو کرد ؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مطمئنید replace اینجوری استفاده میشه ؟

http://msdn.microsoft.com/en-us/library/ms186862.aspx

 

 

بعدش میشه بگید چرا میخواهید اینکارو انجام بدید ؟ دلیل خاصی داره ؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مطمئنید replace اینجوری استفاده میشه ؟

http://msdn.microsoft.com/en-us/library/ms186862.aspx

 

 

بعدش میشه بگید چرا میخواهید اینکارو انجام بدید ؟ دلیل خاصی داره ؟

 

من اون دستور رو از جایی دیدم ، نتیجه گرفته بود . برای همین تستش کردم . حالا اینی که شما گفتینو تست میکنم .

مرسی

 

دلیل :

چون اون کسی که پایگاه رو تایپ کرده در کمال با دقتی ! گاهی ی عربی زده گاهی فارسی .

در نتیجه توی سرچ نتیجه درستی بهم نمیده .

دستورات رو هم باید عربی بنویسم هم فارسی که با توجه به اینکه بعضی مقادیر از dropdown میاد نمیشه .

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خواهش میکنم

 

راستش من کاری به چیزی که توی دیتابیس ثبت شده ندارم قبل کوتیشن یک N اضافه میکنم همه چی درست میشه :ws3:

 

select age from info where name=N'x';

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
خواهش میکنم

 

راستش من کاری به چیزی که توی دیتابیس ثبت شده ندارم قبل کوتیشن یک N اضافه میکنم همه چی درست میشه :ws3:

 

select age from info where name=N'x';

 

n باعث میشه کاراکتر های مثل فارسی به صورت درست ذخیره بشن نه به صورت ؟؟؟ .

x چیزیه که تایپ میشه و اگر صفحه کلید یا فونت شما ی رو به صورت عربی وارد کنه ، همین جوری هم در دیتا بیس ذخیره میشه .

بدتر از اون وقتیه که شروط where رو از کاربر بگیرید .

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
n باعث میشه کاراکتر های مثل فارسی به صورت درست ذخیره بشن نه به صورت ؟؟؟ .

x چیزیه که تایپ میشه و اگر صفحه کلید یا فونت شما ی رو به صورت عربی وارد کنه ، همین جوری هم در دیتا بیس ذخیره میشه .

بدتر از اون وقتیه که شروط where رو از کاربر بگیرید .

 

ممنون از توضیحاتتون :w16:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مشکل حل شد :

 

راه حل ها :

1. می توانیم با دستور

update [table] set [ column]= REPLACE(REPLACE(CAST([column] as nvarchar(max)) , NCHAR(1740), NCHAR(1610)),NCHAR(1705),NCHAR(1603)) 

این کار رو انجام بدیم.

 

ykfarsi.PNG

 

2. از script زیر استفاده کرد .

 

 
USE TestDb;

DECLARE @Table NVARCHAR(MAX),
      @Col NVARCHAR(MAX)

DECLARE Table_Cursor CURSOR
FOR
  --پيدا كردن تمام فيلدهاي متني تمام جداول ديتابيس جاري
  SELECT a.name, --table
         b.name --col
  FROM   sysobjects a,
         syscolumns b
  WHERE  a.id = b.id
         AND a.xtype = 'u' --User table
         AND (
                 b.xtype = 99 --ntext
                 OR b.xtype = 35 -- text
                 OR b.xtype = 231 --nvarchar
                 OR b.xtype = 167 --varchar
                 OR b.xtype = 175 --char
                 OR b.xtype = 239 --nchar
             )

OPEN Table_Cursor FETCH NEXT FROM  Table_Cursor INTO @Table,@Col
WHILE (@@FETCH_STATUS = 0)
BEGIN
  EXEC (
           'update [' + @Table + '] set [' + @Col +
           ']= REPLACE(REPLACE(CAST([' + @Col +
           '] as nvarchar(max)) , NCHAR(1740), NCHAR(1610)),NCHAR(1705),NCHAR(1603)) '

       )
  
  FETCH NEXT FROM Table_Cursor INTO @Table,@Col
END CLOSE Table_Cursor DEALLOCATE Table_Cursor

 

با استفاده زا این اسکریپ لازم نیس تک تک خودمون دستی دستور را ویرایش کنیم .

 

 

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگر asp.net کار میکنید و میخواین که کاربر اگر ی ها یا ک ها رو مطابق با استاندار شما وارد نکرد ، تصحیح انجام بشه میتوانید از این HttpModule زیر استفاده کنید .

 

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

 

نحوه استفاده :

<configuration>
   <system.web>
       <httpModules>
           <add name="FixFarsiCharsModule" type="FixFarsiCharsModule.FixFarsiCharsModule" />
       </httpModules>
   </system.web>
</configuration>



 

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...