2012-04-03 11 views
5

के बीच विशेष वर्ण मैं एक PHP पृष्ठ से कुछ एंड्रॉइड एप्लिकेशन में कुछ पाठ प्राप्त करना चाहता हूं। जब तक वर्ण ASCII (128 तक) होते हैं, तब कोई समस्या नहीं होती है, लेकिन जब मैं 'Ţ', 'Â' (तथाकथित लैटिन -1 पूरक और/या लैटिन विस्तारित-ए) जैसे विशेष वर्ण प्रदर्शित करना चाहता हूं - इसे देखें Unicode Chart) मुझे अपने एंड्रॉइड एप्लिकेशन () में अजीब प्रतीक मिलते हैं।एंड्रॉइड एप्लिकेशन और PHP स्क्रिप्ट

समस्या यह है कि मेरा एंड्रॉइड एप्लिकेशन लैटिन -1 पूरक (जो PHP कर सकता है) से वर्णों को संभाल नहीं सकता है लेकिन लैटिन विस्तारित-ए वर्णसेट (जो PHP नहीं कर सकता) के पात्र हैं। मुझे नहीं पता कि दोनों भाषाओं के लिए कौन सा आम अक्षर उपयोग करना है क्योंकि जावा जो PHP पढ़ने में सक्षम है वह नहीं है, और इसके विपरीत।

मेरे जावा समारोह है कि PHP पृष्ठ की सामग्री हो जाता है यह है:

public static String GetData() { 
    byte[] Bresult = null; 
    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost("http://www.mypage.com/script.php"); 
    try { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
     nameValuePairs.add(new BasicNameValuePair("var", "val")); 
     post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 
     HttpResponse response = client.execute(post); 
     StatusLine statusLine = response.getStatusLine(); 
     if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){ 
      Bresult = EntityUtils.toByteArray(response.getEntity()); 
      Result = new String(Bresult, "UTF-8"); 
     } 
    } catch (UnsupportedEncodingException e) { 
     Log.w("MYAPP", "Unsupported Encoding Exception (" + e.getMessage() + ")"); 
    } catch (Exception e) { 
     Log.w("MYAPP", "Exception (" + e.getMessage() + ") ocurred"); 
    } 
    return Result; 
} 

तो, यह कोड मुझे script.php पृष्ठ की सामग्री देता है। यदि प्राप्त पाठ के पात्र 0 से 128 तक हैं तो कोई समस्या नहीं है। कहीं और, मुझे अजीब पात्र मिलते हैं।

अब, यह मेरा PHP कोड है:

<?php 
    header("Content-Type: text/plain;charset=utf-8"); 
    echo "ÂŞÂĂĒ"; 
?> 

मैं भी एक सी ++ आवेदन है और यह पाठ सही ढंग से पढ़ा है। मैं पूरे दिन कई तरीकों की कोशिश कर रहा हूं और मुझे बस यह नहीं मिला। कौन, कहाँ, क्यों? धन्यवाद। आप डेटा

+0

तरह UTF8 का उल्लेख करना होगा हो सकता है कि इस पर http://stackoverflow.com/questions/4917860/android-character- देखो एन्कोडिंग-कच्चे-संसाधन-फ़ाइलें और यह http://stackoverflow.com/questions/3098207/how-to-set-string-character-encoding-in-android - क्या कोई मदद है? – Aerik

+0

धन्यवाद एरिक। अब मैं उन्हें PHP से एंड्रॉइड से सही तरीके से भेज सकता हूं लेकिन एंड्रॉइड से PHP तक नहीं। कोशिश कर रहे हैं ... – ali

उत्तर

1

जहां हो रही है ?, अगर एक mysql डेटाबेस के माध्यम से है तो आप इस

mysql_query("SET NAMES 'utf8'"); 
+0

ओ.के. Javo। जब मैं डेटाबेस से टेक्स्ट प्राप्त करूंगा तो मैं इसे ध्यान में रखूंगा। अभी के लिए मैं बस इसे एक टेक्स्ट फ़ाइल से प्राप्त करना चाहता हूं। धन्यवाद – ali

+1

भी अपनी टेक्स्ट फ़ाइल में एन्कोडिंग सुनिश्चित करें। कुछ पाठ संपादक आपको एन्कोडिंग को देखने/सेट करने देते हैं। इसके अलावा, मैं शायद यह मूर्खतापूर्ण सुझाव देता हूं, क्या आपने यूटीएफ -8 में एन्कोडिंग सब कुछ माना है? एंड्रॉइड यूटीएफ -8 (http://stackoverflow.com/questions/4564688/what-is-the-default-charset-encoding-of-text-messages-on-android-devices) का उपयोग करता है और यूटीएफ को संभालने के लिए बहुत सारे संसाधन हैं -8 PHP के साथ ... – Aerik

संबंधित मुद्दे