انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: تبدیل یونیکد  (دفعات بازدید: 313 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین amirpc90

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : پسر
تبدیل یونیکد
« : 17 فروردین 1396، 01:10 ق‌ظ »
سلام خدمت اساتید.
من تو اوبونتو تازه وارد هستم و چیز زیادی نمیدونمُ یه ابزاری به نام justniffer نصب کردم که شبکه رو sniff میکنه. وقتی میخواد خروجیشو تو ترمینال نشون بده به صورت unicode نشون میده که نامفهومه ولی همین ترافیکو با یه ابزار دیگه sniffکنم  به صورت utf8 میبینم تو ترینال. کسی میتونه کمک کنه که چطور میتونم مشکل justnifferحل کنم؟ اوبونتو 16.10 استفاده میکنم. ممنون

آفلاین علی ۵۰۰

  • Hero Member
  • *
  • ارسال: 772
  • جنسیت : پسر
پاسخ : تبدیل یونیکد
« پاسخ #1 : 19 فروردین 1396، 01:00 ب‌ظ »
سلام
من در حال حاضر که دارم این پُست رو می‌نویسم از ابزار justniffer چیزی نمی‌دونم اما می‌خواستم کمی درباره encoding های مختلف از جمله unicode توضیح بدم. unicode دارای سه نسخهٔ معروف به نام utf-8، utf-16، utf-32 است. خط فرمان پیش‌فرض لینوکس (یعنی bash) از utf-8 استفاده می‌کنه. (البته می‌شه از encoding های دیگری مثل ASCII، WINDOWS-1256 و ...) پشتیبانی می‌کنه. نسخهٔ متن‌باز خط فرمان powershell که مایکروسافت برای لینوکس منتشر کرده اگر اشتباه نکنم به صورت پیش‌فرض از utf-16 استفاده می‌کنه.

منظور شما از unicode احتمالاً UTF-16 هستش که در notepad ویندوز در قسمت save as به صورت Unicode قابل مشاهده است. خود UTF-16 دارای دو نسخهٔ UTF-16 LE و UTF-16 BE هست که احتمالاً رابط گرافیکی پیش‌فرض ویندوز از UTF-16 LE استفاده می‌کنه. به نظرم تمام نسخه‌های یونیکد در نهایت تبدیل به بایت می‌شن. (احتمالاً خود utf-8 به صورت بایت هست)

توضیحات بالا رو دادم تا اطلاعات شما درباره یونیکُد (Unicode) بیشتر بشه. اما حالا بریم سر اصل مطلب. من این برنامه رو تا به امروز امتحان نکردم اما اگر نظر من رو بخواین، گُمان کنم این برنامه اطلاعات رو به صورت utf-16 نمی‌فرسته چون که معمولاً نرم‌افزارهای خط فرمان لینوکس یا با یونیکُد نسخهٔ utf-8 کار می‌کنند یا با اینکُدینگِ ASCII، پس این برنامه هم احتمالاً باید اطلاعات رو به این صورت به خط فرمان شما ارسال کنه. احتمال کمی می‌دم که از اینکُدینگ دیگری استفاده کرده باشن. در لینوکس تعداد اینکُدینگ‌ها زیاده. دقیقاً نمی‌دونم چندتا است اما شاید بیشتر از ۲۰ تا باشه.

مواردی که در بالا گفتم درباره خط فرمانی که در حالت گرافیکی اجرا می‌شه صدق می‌کنه. اگر خط فرمان شما در حالت tty بدون گرافیکی هستش (احتمالاً) به صورت پیش‌فرض از ascii استفاده می‌کنه. اما شما با نصب برنامه می‌تونید پشتیبانی از utf-8 رو بهش اضافه کنید.

سؤال: آیا شما مطمئن هستید که اطلاعات به صورت Unicode آن هم از نوع utf-16 فرستاده شده یا نه؟ چون ممکنه مثلاً WINDOWS-1256 یا ASCII یا ... بفرسته.
« آخرین ویرایش: 20 فروردین 1396، 08:35 ق‌ظ توسط علی ۵۰۰ »

آفلاین amirpc90

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : پسر
پاسخ : تبدیل یونیکد
« پاسخ #2 : 21 فروردین 1396، 04:40 ب‌ظ »
سلام دوست عزیز. من عکس از ترمینال میذارم. اطلاع زیادی راجع به کدینگ ندارم. هنوز خیلی تازه کارم.
این دوتا اسکرین شاتو نگاه کنید. اونیکه میشه خوند با یه ابزاریه و انیکه نمیشه خوند با ابزار دیگه ای هستش.
نمیدونم چیکارش کنم



آفلاین احمد حقیقی

  • Full Member
  • *
  • ارسال: 208
  • جنسیت : پسر
  • MrRolling
پاسخ : تبدیل یونیکد
« پاسخ #3 : 16 تیر 1396، 10:46 ق‌ظ »
آپشن -r رو به انتهای دستور اضافه کنید
مشکل داشتید ru رو هم تست کنید
« آخرین ویرایش: 16 تیر 1396، 10:47 ق‌ظ توسط احمد حقیقی »