PDA

View Full Version : سوال: تبدیل اینکدینگ یک رشته ؟



rezatati
پنج شنبه 18 مهر 1387, 08:55 صبح
با سلام خدمت دوستان

من در حال نوشتن یک برنامه هستم که از تاریخ هجری شمسی مربوط به کتابخانه Persia.dll استفاده می کنم ولی مشکل من اینجاست که وقتی که مثلا تاریخ را به عدد از این کتابخانه می گیرم و در داخل یک رشته معمولی قرار می دم ترتیب رشته به هم می خوره و علتش هم اینکه که سی شارپ برای رشته ها ازUTF8 استفاده می کنه ولی این تاریخ با اینکدینگ که شمارش 1256 و اسمش هم Arabic windows هستش استفاده می کنه و من خواستم که این رشته را که از این کتابخانه می گیرم به UTF8 با این کد تبدیل کنم ولی کاراکترهایی که تولید میشند همش علامت سوال هستن و تبدیل نمی شن خیلی ممنون می شم که دوستان به من کمک کنن .



Encoding cod = Encoding.GetEncoding(1256);
Encoding unicode = Encoding.UTF8;
char[] chre=unicode.GetChars(cod.GetBytes(TotalDate));

afsharm
شنبه 20 مهر 1387, 08:54 صبح
اولا که سی شارپ برای نگهداری رشته‌ها در حافظه از یونیکد استفاده می‌کند این که شما می‌گویید UTF-8 منظور استاندارد ذخیره سازی در روی دیسک است.
دوما تا آنجا که می‌دانم تبدیل کاراکترها از کد پیج ۱۲۵۶ به یونیکد مشکلی ایجاد نمی‌کنه و اون برعکس این حالت هستش که مشکل درست می‌کنه.
سوما چند تا نمونه استرینگ و نمونه کد هم بزار تا جزییات مسئله بیشتر مشخص بشه.