ارسال و دریافت emoji (شکلک ها)
سلام دوستان من متنی دارم مثلا
با تشکر از همکاری شما دوستان عزیز و با آرزوی بهترینها برای شما
که داخل تلگرامه حالا می خوام این متن ها را با شکل هاش در دیتابیس سایت بریزم و بخونم و داخل اندروید نمایش بدم مثل تلگرام
درود دوست عزیز، با ریختن این متن داخل دیتابیس یونیکد اشکال در دیتابیس ذخیره میشه حالا فقط باید سمت اندروید این یونیکد را باز به اشکال تبدیل کرده و نمایش دهید.
??? unicode = U+1F60A
String emoji = getEmijoByUnicode(unicode);
String text ="So happy ";
textview.setText(text + emoji);
اگر قصد خوندن اطلاعات رو دارید فقط کافیه بصورت یونیکد بخونید و ذخیره کنید. برای اینکه داخل texview هم نمایش بدید باید از فونتی استفاده کنید که شکلکهارو پشتیبانی کنه.
tv=(TextView)findViewById(R.id.textView1); Typeface font= Typeface.createFromAsset(getAssets(), "TAU_BHON.TTF"); tv.setTypeface(font);
البته اینجوری نمیتونیم هر شکلک رو دقیقا همونجوری که بود نشون بدیم. مثلا توی تلگرام خنده یه شکلیه، توی واتساپ یه شکل دیگه. به اینصورت احتمالا به سادهترین شکل ممکن نمایش داده بشه.
به طور کلی شکلکها یکسری یونیکد هستن. شما اگه بدونی هر شلکک چه کدیه میتونید اون رو ذخیره و بازیابی کنید.
این کتابخونه هم یک کیبورد آماده ایموجی درست میکنه و نمایش میده. ببینید چطور داره شکلکها رو نشون میده شاید بهتون کمک کنه. منم سورس کدهاشو نگاه میکنم اگر چیزی متوجه شدم بهتون میگم.
خودِ تلگرام هم سورسش موجوده نگاه کنید ببینید چطور یونیکدهارو بصورت شکلک نمایش میده.
منم امروز نیاز پیدا کردم و همین مشکل رو داشتم بصورت زیر حل شد : ایموجی ها معمولا از سه بایت ایجاد شده اند. و UTF-8 از دو بایت. بنابر این باید نوع کارکترها رو ۴ بایتی تعریف کنیم
فیلد دیتابیس رو utf8mb4 کنید
هدر PHP رو بصورت زیر تغییر بدید
header('Content-Type: text/html; charset=utf8mb4');
کوئری رو روی دیتابیس رو بصورت ست متد بزنید
mysqli_set_charset($connection, 'utf8mb4');
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .