PDA

View Full Version : تبدیل کد پیج 1256 به یونیکد و بالعکس؟



FirstLine
یک شنبه 30 اردیبهشت 1386, 15:03 عصر
با سلام
یه کد دلفی میخوام که یه نوشته با کد پیج 1256 را به یونیکد UTF8 و بالعکس تبدیل کند.
با تشکر

ghabil
یک شنبه 30 اردیبهشت 1386, 21:01 عصر
از UTF8Encode و UTF8Decode استفاده کن ، فقط حواست باشه که این توابع جداول تبدیلشون رو با استفاده از Locale سیستمی که روش هستند ایجاد میکنند.

prettynina
دوشنبه 03 دی 1386, 15:59 عصر
میشه بگید چه جوری از UTF8Encode و UTF8Decode ستفاده کنم؟؟؟

ghabil
دوشنبه 03 دی 1386, 19:04 عصر
شما اول دقیق بگو میخوای چی کار کنی تا مطمئن بشیم اصلا لازم هست از این دو تابع استفاده کنی یا باید کار دیگه ای بکنی...
ولی روش استفادشون این که یک رشته بهشون پاس میکنی و تبدیلش می کنند دیگه.

prettynina
دوشنبه 03 دی 1386, 22:14 عصر
من میخوام یه table که از پارادوکس import کردم تو SQL و رکورداش 1256 هست رو فارسی ببینم
باید از unicode استفاده کنم. بدون کد نویسی!!!

ghabil
دوشنبه 03 دی 1386, 22:23 عصر
خب دیدی ربطی نداشت.
اول برو توی Regional Settings بعد بگو تو همون تب اول روی چه زبانی ست شده؟

prettynina
دوشنبه 03 دی 1386, 22:40 عصر
farsi
اینو دیگه میدونم!!!!

ghabil
دوشنبه 03 دی 1386, 22:41 عصر
بزارش اینگیلیسی(English United states) ببین درست میشه توی دلفی ;)

prettynina
دوشنبه 03 دی 1386, 23:28 عصر
سرکار گذاشتی منو؟؟؟؟
نمیشه خببببببب

ghabil
سه شنبه 04 دی 1386, 09:31 صبح
سرکار یعنی چی !! شما یکسری اطلاعات ر از یک محیط یک بایتی بردی توی یک محیط دوبایتی، توی شرایطی که معلوم نیست از چه Encodingی استفاده شده!
به هرحال چون احتمالا فیلدهات توی SQLServer از نوع NVarchar تعریف شدند وقتی توی دلفی خونده میشند با توجه به Local سیستم تبدیل میشوند (همون که بهت گفتم عوض کنی!) ، اگر واقعا گذاشتی رو انگلیسی و درست نشد! دیگه نمیدونم اطلاعاتت رو چه کار کردی.
دوتا راه داری یا از شکلی که اطلاعات توی دیتابیس نشون داده میشند(از یک فیلد) یک عکس بزار تا اگه بشه از روی شکل کرکتها حدس بزنیم دیتات چه شکلیه یا برو سوال رو توی بخش SQLServer بپرس و بگو چه جوری میشه زمان Import انکدینگ رو هم تعیین کرد. احتمالا JAFO_IRAN یا Amin_Sobati بتونند کمکت کنند.

cybercoder
سه شنبه 04 دی 1386, 12:13 عصر
یه نمونه از تکست رو تو یه فایل بریز بذار اینجا

prettynina
سه شنبه 04 دی 1386, 15:22 عصر
یه نمونه از تکست رو تو یه فایل بریز بذار اینجا

وقتی language رو english کردم به صورت زیر بود:
Id Onvan1 Type
22350 AICE ? ??? 401
22351 AI? ? ??C 401
22352 C??C? ?CE 401
22353 ?C?I E? ?? 401
22354 ?C?I E? ?? 401
22355 ?CEC? 401


وقتی language فارسی شد، به شکل زیر رکوردها توی SQL نشون داده میشن:

ÓæÑå ÈÞÑå Âíå 14

cybercoder
چهارشنبه 05 دی 1386, 12:24 عصر
برای تبدیل format ها خیلی ساده می تونی از Internet Explorer استفاده کنی فایل تکست رو باز کن و Save AS کن بعد فرمتش رو اونقدر تغییر بده تا پیدا کنی کدومه.

prettynina
چهارشنبه 05 دی 1386, 23:32 عصر
فرمتش رو کجا و چطوری تغییر بدم؟

ghabil
پنج شنبه 06 دی 1386, 00:10 صبح
برای تبدیل format ها خیلی ساده می تونی از Internet Explorer استفاده کنی فایل تکست رو باز کن و Save AS کن بعد فرمتش رو اونقدر تغییر بده تا پیدا کنی کدومه.

قراره یکسری اطلاعات از توی SQL Server توی دلفی نشون داده بشند! درسته که IE امکان تبدیل و تغییر کارکترستها رو داره ولی چه ربطی داره به این موضوع .

یک سوال: وقتی توی دلفی هم اطلاعات رو مثلا توی یک گرید نشون میدی همین شکلی هستند یا تغییر کردند و بعضیهاش هم علامت سوال شدند:


ÓæÑå ÈÞÑå Âíå 14

prettynina
پنج شنبه 06 دی 1386, 00:18 صبح
توی دلفی هم همین شکلی هستند

ghabil
پنج شنبه 06 دی 1386, 00:20 صبح
بعد فارسی رو که کردی انگلیسی چطوری شدند (توی دلفی)؟

JAFO_IRAN
پنج شنبه 06 دی 1386, 08:56 صبح
سلام

والله بررسی این جور مسائل بدون نمونه خیلی دشواره - برای بعضی از دوستان هم مثل اینکه از طرف مقابل گذاشتن نمونه خیلی دشواره

پس با چشمان Wide Shut میشه گفت:

1. احتمالا فیلد در SQLServer به صورت char یا varchar تعریف شده - به این دلیل که نتایج با تغییر locale تغییر میکنه
2. احتمالا ورودی 1256 نبوده یا collation رو Arabic قرار نداده
3. اگر فرض کنیم ورود 1256 نبوده، باید اول collation فیلد درست بشه و بعد به nvarchar تبدیل بشه.
4. با چشم بسته بیش از این به نظرم نمیرسه
5. اگر فایل paradox و sql رو همون چند روز پیش zip کرده و فرستاده بودید الان پروژه رو تحویل داده بودید.

ارادت

prettynina
پنج شنبه 06 دی 1386, 10:25 صبح
ورودی 1256 بوده که در SQL‌ وارد شده و به پارادوکس convert شده. حالا توی دلفی یا همون SQL ، بعد از convert مجدد، اطلاعات فارسی نشون داده نمیشن.
collation هم arabic بوده و فیلدها از نوع nvarchar .

cybercoder
پنج شنبه 06 دی 1386, 10:34 صبح
قراره یکسری اطلاعات از توی SQL Server توی دلفی نشون داده بشند! درسته که IE امکان تبدیل و تغییر کارکترستها رو داره ولی چه ربطی داره به این موضوع .
شما نمی تونی ارتباطشو پیدا کنی به معنی این نیست که ارتباطی نداره
اگه به صورت فایل حاوی دستورات sql بشه ارتباط داره
فایل Sql هم نوعی Text fileه و می شه به عنوان تکست فایل بازش کرد

prettynina
پنج شنبه 06 دی 1386, 10:42 صبح
میشه بگین چه جوری؟
SQL رو با IE باز کنم و فرمتش رو تغییر بدم.
ممنون

cybercoder
پنج شنبه 06 دی 1386, 11:57 صبح
از دیتابیست به صورت فایل sql پشتیبان بگیر
بعد اون فایل رو با IE باز کن
برنامه هایی هستند که codepage ها رو به هم تبدیل می کنن
یه سرچ بزن رو وب

موفق باشی

ghabil
پنج شنبه 06 دی 1386, 13:39 عصر
شما نمی تونی ارتباطشو پیدا کنی به معنی این نیست که ارتباطی نداره
اگه به صورت فایل حاوی دستورات sql بشه ارتباط داره
فایل Sql هم نوعی Text fileه و می شه به عنوان تکست فایل بازش کرد

دوست عزیز قصد جسارت نداشتم که ناراحت شدی و برای همین هم دقت نکردی که من چی گفتم، به هر حال اطلاعات رو وقتی به هرشکلی توی IE باز کردی ، خب دستت درد نکنه ، ولی IE یک محیط یونیکد هست ب، دلفی یک محیط یک بایتی پس نشون دادن اطلاعات توی دلفی خیلی با نشون دادنشون توی IE فرق داره ، از طرفی IE با یک انتخاب ساده مپینگ دیتا رو عوض میکنه ،در حالیکه دلفی خودش پیشفرض از Locale سیستم اطلاعات رو تبدیل میکنه، کلا خیلی فرق دارند باز اگر Visual Studio بود یک چیزی...

prettynina
جمعه 07 دی 1386, 15:13 عصر
با IE هم که نشد :(
حالا چیکار کنم؟؟؟