PDA

View Full Version : دلیل چاپ � توی متن چیه



omid_student
شنبه 28 دی 1392, 14:46 عصر
سلام من توی متنم � رو میبینم در صورتی که چنین چیزی وجود نداره چرا؟

MMSHFE
شنبه 28 دی 1392, 15:42 عصر
چون متن رو با substr میشکنید نه با mb_substr یا اینکه کدگذاری رو درست تنظیم نکردین. کارکتر فوق موقعی ظاهر میشه که کد کارکتر کامل نباشه. مثلاً حروف یونیکد (مثل فارسی) 2 بایتی هستن و اگه با substr متن رو بشکنید، نه تنها اشتباه جدا میکنه (مثلاً 10 کارکتر میگذارین ولی 5 تا برمیگردونه) بلکه اگه فرضاً موقعیت دهم، وسط کد دوبایتی یک کارکتر یونیکد باشه، نصف کدش توی رشته قرار میگیره (که میشه اون علامت سؤاله که گذاشتین) و نصف دیگه که بقیه کد بوده از رشته حذف میشه.

danial.saeedi
شنبه 28 دی 1392, 20:49 عصر
http://www.php.net/manual/ru/function.mb-substr.php

omid_student
شنبه 28 دی 1392, 21:20 عصر
مشکلم حل شد
با دستور mb_convert("string","UTF8"d حلش کردم