2016-09-15 5 views
8

पर अद्यतन के बाद गलत एन्कोडिंग में टेक्स्ट प्रदर्शित करता है मैंने अपनी परियोजना को एसडीके संस्करण 24 और जावा 8 में अपडेट किया है और एक अजीब एन्कोडिंग समस्या का सामना किया है।एंड्रॉइड जावा 8

कुछ अजीब कारण से एंड्रॉइड विंडोज़ -1251 के रूप में मेरे हार्डकोडेड यूटीएफ -8 तारों का इलाज करता है और इस प्रकार पाठ खराब हो जाता है।

इस तरह:

compileSdkVersion 24 
buildToolsVersion "24.0.2" 

compileOptions { 
    encoding = 'utf-8' 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 

और मैं क्या कोशिश की है:

enter image description here

यह मैं क्या बदल है

  • एंड्रॉयड स्टूडियो सेटिंग में बदला एन्कोडिंग
  • जोड़ा compileOptions.e ncoding = 'विंडोज़ -1251' और = 'utf-8'
  • जोड़ा प्रणाली चर JAVA_TOOL_OPTIONS compileOptions.encoding: -Dfile.encoding = UTF8

अगर मैं वापस जावा पर वापस लौटने 7 सब कुछ ठीक है।

कोई विचार?

+1

आप जैक संकलक का उपयोग किया है? –

+0

मैंने जैकऑप्शन का उपयोग किया { build.gradle में सही } सक्षम – FelisManulus

उत्तर

6

यह जैक कंपाइलर में एक बग है, इस post पर एक नज़र डालें।

जैक डिफ़ॉल्ट वीएम एन्कोडिंग का उपयोग कर रहा है, जो विंडोज़ पर विंडोज़ -1252 है। इसलिए, आपका टेक्स्ट UTF-8 के साथ एन्कोड किया गया है और जैक कंपाइलर द्वारा windows-1252 के साथ डीकोड किया गया है, और यही कारण है कि वे खराब हो गए।

अब तक, Gradle Plugin डिकोड प्रारूप निर्धारित करने के लिए एक API का समर्थन नहीं करता है, तो हम प्रतीक्षा करने की आवश्यकता ...

2

मैं Windows (लेकिन मैक OSX) में एक ही मुद्दा था।

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

ध्यान दें कि यह हिस्सा परिवर्तन एन्कोडिंग: इस लाइन मेरी समस्या (अपनी परियोजना के gradle.properties में रख) का समाधान

-Dfile.encoding=UTF-8