رفتن به مطلب

ثبت کارکتر ؟ به جای سیمبل emoji زمان ثبت نام


fun_code

ارسال‌های توصیه شده

سلام و عرض ادب

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

یه برنامه سوکت هست که با این دیتابیس ارتباط داره و دیتا ثبت و بازیابی میکنه...

اومدم با php یک صفحه ثبت نام ساختم...

در بیسیک فور اندروید میام فیلدهای ثبت نام رو میگیرم و با متد POST به اون صفحه php ارسال و در اونجا دریافت و در دیتابیس sql ذخیره میکنم.

مشکل اینجا است که وقتی سیمبلی رو در فیلدها ارسال میکنم بجاش علامت سوال ثبت میشه !

 

اما با سوکت که اطلاعات رو ویرایش و سیمبل میذاریم بدرستی ثبت میشه !

لطفا راهنمایی بفرمایید که چه دلیلی میتونه باعث بشه کارکترهای سیمبل emoji به ؟ تبدیل بشن !

مثلا الان سیمبلی شبیه به :malih: اما نـه بصورت متحرک رو ارسال کردم و در دیتابیس ?? ثبت شد !

 

شایان ذکر است که در کدنویسی php برای اتصال به دیتابیس SqlServer از کد زیر استفاده میکنم:

$serverName = "gyhsjgftys12,1022";
$connectionInfo = array( "Database"=>"DB", "UID"=>"usr", "PWD"=>"yhgb%!@hj",'CharacterSet' => 'UTF-8');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
	echo "Connection established";
}else{
	echo "Connection could not be established";
}

اما در کدنویسی B4A برای ارسال دریافت دیتا به سوکت از UTF-16LE استفاده میکنم. در php هم به UTF-16LE تغییر دادم اما زمان کانکت شدن به دیتابیس اررور میده... یعنی شرط بالا برابر با false میشه...

طبق جستجویی که انجام دادم SqlServer تنها UTF-8 رو پشتیبانی میکنه!

با سپاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

باسلام 

اونی که بنده در اکثر برنامه ها دیدم معمولا شکلک وسیمبل رو به دیتابیس ارسال نمی کنند بلکه  کد رمزی برای تک تک ، سی چهل شکلک که در برنامه به صورت ایکون یا فایل گیف هست ،معین میکنند وبرنامه با انتخاب هریک ازشکلک ها بجای سیمبل وشکلک ، اون کد رو به دیتابیس ارسال میکنند وهمینطور برنامه موقع دریافت اطلاعات ازدیتابیس شرطی داره که هروقت قسمتی از متن اون کد بود اونوقت شکلک متناسب با اون کد را بجای اون کد نمایش دهد .

مثلا قسمت چت همین سایت رو نگاه کنید ببینید وقتی شکلکی رو انتخاب میکنید کدی رو در ابتدا نمایش میده مثلاکد  :gamer2 :      :gamer2: 

هست وحتی هرجای سایت  این کد رو بنویسید ودکمه space رو بزنید بصورت خودکار کد تبدیل به این شکلک وسمبل میشه .دراصل کد بالا دردیتابیس ذخیره شده ولی درقسمت نمایش  ایندو جایگزین میشوند.

ضمنا اینم دراین مورد بگم که دربیشتر برنامه ها بجای 30 ،40 فایل تصویری یا ایکون سمبل وشکلک ثابت ، فقط یک فایل png که همه تصاویررو درونش داره بیشتر نیست وبرنامه بااستفاده ازآرایه ذخیره ی x,y تصویر، محل شکلک مورد نظر روپیدا وفقط اون قسمت تصویررو نشون میده ! مثل این تصویر واحد دارای 180 شکلک

64cc0e355d765abaa4db0cc13055ea46_68eb1eda2f0575f8e305689b7f85ab919.png

باز اگه بخواین خود سمبل رو به دیتابیس ارسال کنید این لینکم نگاه کنید ، همون حرف آقا سجادو واسه اینکار نوشته وپیشنهادکرده . یعنی (set_charset("utf8mb4")).

mysql - How to store Emoji Character in My SQL Database - Stack Overflow

این سایت زیرهم همین روش رو گفته ولی اینم اضافه کرده ('utf8mb4_general_ci')

Support full UTF-8 (emojis, Asian symbols, mathematical symbols) on MySQL and other database drivers when they are configured to allow it [#2488180] | Drupal.org

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

$connectionInfo = array( "Database"=>"DB", "UID"=>"usr", "PWD"=>"yhgb%!@hj",'CharacterSet' => 'utf8mb4');

این رو تست کنید

اگر جواب نداد به علاوه این کار از دیتابیستون بک آپ بگیرید، کوئری زیر رو روی دیتابیستون اجرا کنید:

ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

به جای Tablename اسم جدول صفحه ثبت نام که جدول کاربران میشه رو قرار بدید

characterSet بالا هم که قرار شد اعمال کنید، مشکلتون حل میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

از راهنمایی شما عزیزان متشکرم

از اونجایی که نمایش شکلک های متحرک و ثابت در وب سایت ها (PHP , ASP , HTML) خیلی راحت تر از برنامه های بیسیک فور اندروید هست ناچار شدم که شکلک های محدود پیش فرض خود اندروید رو در دیتابیس ذخیره کنم.

مشکل هم با قرار دادن کارکتر N پیش از مقدار فیلد مورد نظر در دستور Insert برطرف شد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

سلام دوستان

یه مشکل ، میخوام شکلک های خود اندرویدی رو در sql ذخیره کنم و در B4A ارور میده !

چطور میشه اینکار رو انجام داد ؟

کارکتر N رو هم قبل از مقدار مورد نظر گذاشتم اما نشد !!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...