چرا حروف فارسی دو برابر حساب میشه ؟؟

mohan21

Member
سلام

من اطلاعات رو از فرم ارسال می کنم (post)

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

چرا ؟؟

راه حل ... !!
 
آخرین ویرایش:

mohan21

Member
اگر فاصله داشته باشه، فاصله ها رو یکی میشماره ...

فقط حروف فارسی رو دو برابر میکنه ....

"سوالی از شما دوستان دارم" میشه :: 44
 

mohan21

Member
به اینصورت جواب داد :::

PHP:
$CountSendTitle = mb_strlen( $SendTitle,"UTF-8" ) ;

با تشکر
 

foranyone

Well-Known Member
کارکتر های اسکی با 7 بیت ذخیره میشن


یعنی 2 به توان 7 حالت به عبارتی 128 کاراکتر :paint:

بعد که زبان های دیگه رو هم خواستن اضافه کنند مسلما 128 کاراکتر و 7 بیت جوابگوی این کار نبود .

تا اینکه استاندارد یونیکود به وجود اومد


utf8 از 8 بیت استفاده میکنه یعنی 2 به توان 8 کاراکتر

2 به توان 8 یعنی 256 دقیقا دو برابر دو به توان 7 یعنی 128 کاراکتر هست به خاطر همین دو برابر فضا میگیره :rose:

الان utf16 هم اومده که تعداد کاراکترهای بیشتری رو support میکنه .

توابع خاصی برای کار با رشته های یونیکود ارائه شده که اکثرا با mb شروع میشن مثل :

http://php.net/manual/en/ref.mbstring.php
 

جدیدترین ارسال ها

بالا