တရုတ်ဆံပင်အိတ်ကုဒ်သည် Android applications များသည် php backend database များနှင့်အပြန်အလှန်ဆက်သွယ်သောအခါဘုံပြ problem နာဖြစ်သည်။ ဤဆောင်းပါးသည် developer များက developer များကိုရှောင်ရှားရန်နှင့်ဒေတာကူးစက်မှုကိုမှန်ကန်ကြောင်းသေချာစေရန်ကူညီရန်ကူညီရန်လက်တွေ့ကျသောနည်းလမ်းအမျိုးမျိုးကိုမိတ်ဆက်ပေးလိမ့်မည်။
PHP သည်ဒေတာဘေ့စ်မှအချက်အလက်များကိုရရှိသောအချက်အလက်များကိုဒေတာဘေ့စ်မှရရှိသောအခါတိုင်းအချက်အလက်များကို UTF-8 format ဖြင့် encoded သည်။ ထို့ကြောင့်ဒေတာဘေ့စ်နှင့်ဒေတာစားပွဲများကို UTF8 သို့မဟုတ် UTF8MB4 ကိုသတ်မှတ်ရန်သေချာစေရန်အရေးကြီးသည်။
MySQL configuration file ထဲတွင်အောက်ပါ configuration ကို my.cnf :
[MySQLD] Claits-Set-server = UTF8 Collation-Server = Utf8_Gennaler_CI
MySQL ဝန်ဆောင်မှုကိုပြုပြင်ပြီးနောက် MySQL ဝန်ဆောင်မှုကိုပြန်လည်စတင်ပါ။ အောက်ပါ SQL command ကိုကွပ်မျက်ခြင်းဖြင့်ဇာတ်ကောင် settings ကိုစစ်ဆေးပါ။
'% အက်ခရာ%' ကဲ့သို့သော variable တွေကိုပြပါ။
အကယ်. ပြန်လာသောရလဒ်တွင်သတ်မှတ်ထားသည့်ဇာတ်ကောင်သည် UTF8 သို့မဟုတ် UTF8MB4 ဖြစ်သည်ဆိုပါက configuration သည်အောင်မြင်သည်။
ဒေတာဘေ့စ်ကိုချိတ်ဆက်ပြီးနောက်ဒေတာအပြန်အလှန်ဆက်သွယ်မှုကုဒ်သည်တသမတ်တည်းဖြစ်ကြောင်းသေချာစေရန် PHP Code တွင် UTF Code တွင်ဖော်ပြရန်ဖော်ပြရန်အကြံပြုသည်။
<?php $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); mysqli_set_charset($conn, "utf8"); ?>
Android ဘက်တွင် HTTP တောင်းဆိုမှုများကိုပေးပို့သည့်အခါ, တောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများအတွင်းအမှိုက်များ code ကိုကာကွယ်ရန် UTF-8 ကို UTF-8 အဖြစ်သတ်မှတ်ရန်လိုအပ်သည်။
ကြိုးစားကြည့်ပါ URL URL = URL အသစ် (http://www.example.com "); httpurlconnection connection = (httpurlconnection) url.opencome (); Connection.SetrequestMethod ("Get"); Connection.SetrequestPropertyPerterty ("other-charset", "UTF-8"), inputprentstream တုံ့ပြန်မှု = connection.getPputtream (); } ဖမ်း (ioException E) { e.printststrattace (); }
ကြိုးစားကြည့်ပါ defaulthttclient httpclient = အသစ် defaulthttplient (); httpget httpget = httppget (http://www.example.com ") ။ httpget.setheader ("Utf-8", HTTPResPons Rextion = httpclient.xecute (httpgget); httpentity entity = တုံ့ပြန်မှု။ Inputstream inputtrameam = entity.Getcontent (); } ဖမ်း (ioException E) { e.printststrattace (); }
နောက်ထပ်ဘုံအဖြေတစ်ခုမှာ URL ကို Encled condbled code ကိုထုတ်လွှင့်နေစဉ်အတွင်း code ကိုရှောင်ရှားရန်တရုတ်အကြောင်းအရာများကို Encledode ဖြစ်သည်။ Android တွင် Java.Net.urlencoder ကို သုံးနိုင်သည်။
string string = "တရုတ်ကြိုး"; string encodedstredstredstredStredstr = urlocoder.enode (straft-8 ");
PHP ဘက်မှလက်ခံပြီးနောက် URDCODEDED function ကို Decode လုပ်ရန်အသုံးပြုပါ။
$ str "" URL% 20% E7% BC% BC% BC% BC% A0% 81 "; $ decodedstr = urdnecode ($ str);
MySQL database character character set, php connection character set ကိုအတိအလင်းသတ်မှတ်ခြင်းဖြင့် Android client ပေါ်တွင် encoding encoding ကိုအတိအလင်းသတ်မှတ်ခြင်းအားဖြင့်, ထို့အပြင်တရုတ်ဘာသာဖြင့် URL encoding သည်လက်တွေ့ကျသောအရန်နည်းလမ်းလည်းဖြစ်သည်။ ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်းအထက်ပါဖြေရှင်းချက်များသည်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီ,