/
  • نمایش یک کاراکتر خاص

  • صفحه‌ها (5):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی نمایش یک کاراکتر خاص
    نویسنده پیام
    jpeka7 آفلاین
    عضو
    ***

    ارسال‌ها: 61
    تاریخ عضویت: ۱۳۹۱ فروردين ۱۳
    اعتبار: 1
    تشکرها : 70
    ( 16 تشکر در 6 ارسال )
    ارسال: #1
    نمایش یک کاراکتر خاص
    دوستان سلام
    نمی دونم چرا بعضی وقت ها تو تکست اریا که متن وارد می کنم ، آخرین کاراکتر یه علامت سوال هست که درون یه کادر ؟؟؟؟
    چرا این جوری می شه ؟؟؟؟
    (آخرین ویرایش در این ارسال: ۱۳۹۱ ارديبهشت ۱۳ ۱۲:۳۳ عصر، توسط jpeka7.)
    ۱۳۹۱ ارديبهشت ۱۳ ۱۲:۳۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,479
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #2
    RE: نمایش یک کاراکتر خاص
    موقع وارد کردن یا موقع نمایش؟

    utf-8 رو ست کردی؟

    سند UTF-8 without BOM هست؟
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    (آخرین ویرایش در این ارسال: ۱۳۹۱ ارديبهشت ۱۳ ۰۵:۰۰ عصر، توسط hamid_80386.)
    ۱۳۹۱ ارديبهشت ۱۳ ۰۴:۴۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : jpeka7
    jpeka7 آفلاین
    عضو
    ***

    ارسال‌ها: 61
    تاریخ عضویت: ۱۳۹۱ فروردين ۱۳
    اعتبار: 1
    تشکرها : 70
    ( 16 تشکر در 6 ارسال )
    ارسال: #3
    RE: نمایش یک کاراکتر خاص
    این کار رو کردم . من متن را با textarea دریافت می کنم و تو db ذخیره می کنم و مقع نمایش که واکشی می کنم همه رو درست و فارسی نشون می ده فقط و فقط آخرین کاراکتر این بلا سرش میاد . نمی دونم چرا؟Huh
    ۱۳۹۱ ارديبهشت ۱۳ ۰۶:۰۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,479
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #4
    RE: نمایش یک کاراکتر خاص
    البته نمیدونم ربطی داره به این یا نه، ولی با یه ویرایشگر مثل Notepad++ کدتون رو باز کنید و encoding اون رو UTF-8 without BOM کنید، احتمالاً درست شه...
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۱ ارديبهشت ۱۳ ۰۷:۰۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : jpeka7
    vejmad آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,459
    تاریخ عضویت: ۱۳۸۹ ارديبهشت ۲۱
    اعتبار: 23
    تشکرها : 482
    ( 1246 تشکر در 610 ارسال )
    ارسال: #5
    RE: نمایش یک کاراکتر خاص
    احتمالا تعریف ستون جدول شما که متن درش ذخیره شده صحیح نیست. collation اون باید UTF-8 باشه.

    البته یک دلیل دیگه هم میتونه این باشه که کل متن رو استفاده نمیکنید و با توابعی مثل substr بخشی از اون رو جدا و استفاده میکنید.
    __________________________________________________________________________
    God knows
    (آخرین ویرایش در این ارسال: ۱۳۹۱ ارديبهشت ۱۳ ۰۸:۴۵ عصر، توسط vejmad.)
    ۱۳۹۱ ارديبهشت ۱۳ ۰۸:۳۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : hamid_80386 jpeka7
    takphp آفلاین
    عضو
    ***

    ارسال‌ها: 76
    تاریخ عضویت: ۱۳۹۱ فروردين ۱۶
    اعتبار: 1
    تشکرها : 59
    ( 18 تشکر در 12 ارسال )
    ارسال: #6
    RE: نمایش یک کاراکتر خاص
    (۱۳۹۱ ارديبهشت ۱۳ ۰۸:۳۷ عصر)vejmad نوشته شده توسط:  احتمالا تعریف ستون جدول شما که متن درش ذخیره شده صحیح نیست. collation اون باید UTF-8 باشه.

    البته یک دلیل دیگه هم میتونه این باشه که کل متن رو استفاده نمیکنید و با توابعی مثل substr بخشی از اون رو جدا و استفاده میکنید.

    فک کنم روش اولتون مشکل دوستمون باشه .چون منم چند وقت پیش این مشکل رو داشتم.
    ۱۳۹۱ ارديبهشت ۱۳ ۱۰:۵۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1360
    ( 6194 تشکر در 3437 ارسال )
    ارسال: #7
    RE: نمایش یک کاراکتر خاص
    فقط کاراکتر آخر هست پس مشکل انکدینگ نیست.
    از substr استفاده کردی؟
    طول فیلدت چقدره؟
    __________________________________________________________________________
    http://mydolphin.ir
    ۱۳۹۱ ارديبهشت ۱۳ ۱۱:۰۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    vejmad آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,459
    تاریخ عضویت: ۱۳۸۹ ارديبهشت ۲۱
    اعتبار: 23
    تشکرها : 482
    ( 1246 تشکر در 610 ارسال )
    ارسال: #8
    RE: نمایش یک کاراکتر خاص
    (۱۳۹۱ ارديبهشت ۱۳ ۱۱:۰۵ عصر)admin نوشته شده توسط:  فقط کاراکتر آخر هست پس مشکل انکدینگ نیست.
    چرا انکدینگ میتونه موجب مشکل در آخرین کاراکتر بشه.
    حالا میپرسی چطوری، جوابش اینه:
    فرض کن یک ستون با انکدینگ غیر UTF-8 تعریف کردیم برای متن و اون انکدینگ تک بایتی است.
    فرضا ما حداکثر طولش رو 15 گرفتیم.
    هر حرف فارسی به 2 بایت فضا نیاز داره.
    پس با 7 حرف فارسی 14 بایت از 15 بایت پر میشه.
    و یک بایت باقی میمونه.
    اگر طول متنی که در اون ستون تلاش به اینزرت شده باشه بیشتر از 7 حرف فارسی بوده باشه، در نتیجه از حرف آخر تنها یک بایت در آخرین بایت باقی مانده از فضای فیلد ذخیره میشه.
    به این شکل آخرین بایت یک مقدار غیرمجاز در انکدینگ UTF-8 خواهد داشت که احتمال داره بصورت علامت سوال نشون داده بشه.

    البته بنده هم فکر میکنم احتماش کمه مشکل ایشون این بوده باشه، چون این حالت وقتی چند شرط لازم جمع باشن رخ میده و درصورت وقوع بنظرم بقدر کافی قابل تشخیص/حدس و رفع کردن است. ولی بهرحال از نظر تئوریک و ذهنی این حالت به ذهنم اومد که گفتم ممکنه مشکل از UTF-8 نبودن انکدینگ ستون جدول بوده باشه.

    در substr کردن هم دقیقا چیز مشابهی پیش میاد که آخرین کاراکتر ناقص میشه. چون PHP ساپورت Native از یونیکد نداره و توابع رشته ای اون عملیات رو بر اساس کاراکترهای تک بایتی انجام میدن.
    __________________________________________________________________________
    God knows
    (آخرین ویرایش در این ارسال: ۱۳۹۱ ارديبهشت ۱۴ ۱۲:۴۵ صبح، توسط vejmad.)
    ۱۳۹۱ ارديبهشت ۱۴ ۱۲:۴۳ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : hamid_80386 admin jpeka7
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,479
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #9
    RE: نمایش یک کاراکتر خاص
    من مشکل مشابهی تو حالت cross browing داشتم، اونجا بعضی کاراکتر ها به لوزی و علامت سوال تبدیل میشدن، چون cross بود میدونستم حتماً encoding هست
    ولی اینجا فکر کنم دوست عزیز vejmad قشنگ توضیح داد
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۱ ارديبهشت ۱۴ ۱۲:۵۰ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : vejmad
    vejmad آفلاین
    عضو ارشد
    *****

    ارسال‌ها: 1,459
    تاریخ عضویت: ۱۳۸۹ ارديبهشت ۲۱
    اعتبار: 23
    تشکرها : 482
    ( 1246 تشکر در 610 ارسال )
    ارسال: #10
    RE: نمایش یک کاراکتر خاص
    منظورت از cross browing چیه؟
    __________________________________________________________________________
    God knows
    ۱۳۹۱ ارديبهشت ۱۴ ۰۱:۲۲ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (5):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS