title: Myanmar Font on Android devices - entire application
body: <p>I found <a href="https://stackoverflow.com/questions/2711858/is-it-possible-to-set-font-for-entire-application">this answer</a> which perfectly fit my question. But it does not work for me. Don't know why. Maybe I'm doing something wrong. </p>
  
  <p>I copied exactly the code from the answer. So in my com.example.printhelper package is Application.java a FontsOverride.java files. In res/assets/fonts I have Zawgyi_One.ttf font. And I have this line:</p>
  
  <pre><code>&lt;item name="android:typeface"&gt;serif&lt;/item&gt;
  </code></pre>
  
  <p>in theme.xml.</p>
  
  <p>Some Myanmar words are stored in my database (UTF-8) and I get them through json by http get. </p>
  
  <p>But I still saw <code>(Ã±Ã¶Ãµ)Â½ÂºÃ½Ã¼Ã¾Ã‚ÂºÃ»Â±Ã½(Ã´Ã°)Ã¾Â±Ã Ã¨ÂºÃ®</code> on my <code>EditText</code> instead of Myanmar letters. </p>
  
  <p>Am I doing something wrong? I use Android Studio editor. </p>
  
  <p>CODE:
  Application.java</p>
  
  <pre><code>package com.example.printhelper;
  
  public final class Application extends android.app.Application {
      @Override
      public void onCreate() {
          super.onCreate();
          FontsOverride.setDefaultFont(this, "DEFAULT", "Zawgyi_One.ttf");
          FontsOverride.setDefaultFont(this, "DEFAULT_BOLD", "Zawgyi_One.ttf");
          FontsOverride.setDefaultFont(this, "MONOSPACE", "Zawgyi_One.ttf");
          FontsOverride.setDefaultFont(this, "SERIF", "Zawgyi_One.ttf");
          FontsOverride.setDefaultFont(this, "SANS_SERIF", "Zawgyi_One.ttf");
      }
  }
  </code></pre>
  
  <p>FontsOverride.java</p>
  
  <pre><code>public final class FontsOverride {
  
      public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) {
          final Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName);
          replaceFont(staticTypefaceFieldName, regular);
      }
  
      protected static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) {
          try {
              final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName);
              staticField.setAccessible(true);
              staticField.set(null, newTypeface);
          } catch (NoSuchFieldException e) {
              e.printStackTrace();
          } catch (IllegalAccessException e) {
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>NOTE: I Want to override all TextView and <strong><code>EditText</code></strong></p>
  
  <p>Still no answer. I guess there is something in my application which is blocking the font, but I have no idea what and why. I have several themes in my aplication which can user choose. All styled in styles.xml and themes.xml. All themes inerits from the same parent. It's ok to declare the font style only for parent, right?</p>
  
  <p>EDIT: Cathing the json - I use AsyncTask</p>
  
  <pre><code>DefaultHttpClient httpclient = new DefaultHttpClient();
  HttpGet httpget = new HttpGet(url);
  ResponseHandler&lt;String&gt; responseHandler = new BasicResponseHandler();
  String response = httpclient.execute(httpget,responseHandler);
  </code></pre>
  
  <p>EDIT 2: String conversion</p>
  
  <p>I convert response to hex</p>
  
  <pre><code>HttpGet httpget = new HttpGet(url);
  httpget.setHeader("Content-type", "application/json; charset=utf-8");;
  ResponseHandler&lt;String&gt; responseHandler = new BasicResponseHandler();
  String response = httpclient.execute(httpget,responseHandler);
  byte[] array = httpclient.execute(httpget,responseHandler).getBytes();
  StringBuffer hexString = new StringBuffer();
  for (byte b : array) {
      int intVal = b &amp; 0xff;
      if (intVal &lt; 0x10)
          hexString.append("0");
      hexString.append(Integer.toHexString(intVal));
  }
  System.out.println(hexString);
  </code></pre>
  
  <p>and this is what it throws </p>
  
  <pre><code>7b22766965776572735f6964223a33352c22766965776572735f66697273746e616d65223a224b41222c22766965776572735f6c6173746e616d65223a22204b412053455420333528437573746f6d657220c382c2bdc383c2a2c382c2b6c383c2bdc382c2a6c383c2a0c383c2a8c383c2adc382c2b6c383c2a0c382c2a5c383c2bdc383c2bcc382c2bcc383c28cc383c2bd29222c22766965776572735f7374726565746e616d65223a22c383c282c382c2bac383c2bbc382c2b1c383c2bd20c383c2b4c383c2b3c383c2bec382c2bfc383c2a3c382c2bcc383c2a2c382c2bac382c2a3c3a2c280c29cc382c2bdc383c2a020c382c2bdc382c2bac383c2bdc383c2bcc382c2bfc383c2aec382c2bbc383c2bd20c383c2b2222c22766965776572735f686f7573656e756d223a6e756c6c2c22766965776572735f63697479223a6e756c6c2c22766965776572735f706f7374636f6465223a6e756c6c2c22766965776572735f6372656174696f6e5f74696d65223a7b2264617465223a22323031322d31312d31382031373a30313a30362e303030303030222c2274696d657a6f6e655f74797065223a332c2274696d657a6f6e65223a22417369612f52616e676f6f6e227d2c22766965776572735f69735f616374697665223a312c22766965776572735f6e6f7465223a6e756c6c2c22766965776572735f736d617274636172645f6964223a313435303030303033332c22766965776572735f736574746f70626f785f6964223a6e756c6c2c22766965776572735f636f6e74726163745f6e756d626572223a22222c22766965776572735f656d61696c223a6e756c6c2c22766965776572735f70686f6e656e756d223a3231313535342c22766965776572735f68705f6e756d626572223a6e756c6c2c22766965776572735f6d61726974616c5f737461747573223a2273696e676c65222c22766965776572735f646174655f6f665f61637469766174696f6e223a6e756c6c2c22766965776572735f616765223a302c22766965776572735f6f636375706174696f6e223a6e756c6c2c22766965776572735f6e69665f63696e223a6e756c6c2c22766965776572735f7a6f6e65223a6e756c6c2c22766965776572735f67656e646572223a226d616c65222c22766965776572735f70686f6e656e756d32223a6e756c6c2c22766965776572735f637265617465645f75736572735f6964223a6e756c6c2c22766965776572735f6163746976617465645f75736572735f6964223a6e756c6c2c22766965776572735f656469746564223a6e756c6c2c22766965776572735f6469766973696f6e735f6964223a6e756c6c2c22766965776572735f746f776e73686970735f6964223a6e756c6c2c22766965776572735f6465616c6572735f6964223a6e756c6c2c22766965776572735f626f75717565745f6578706972655f64617465223a7b2264617465223a22323031312d31312d31312030303a30303a30302e303030303030222c2274696d657a6f6e655f74797065223a332c2274696d657a6f6e65223a22417369612f52616e676f6f6e227d2c22766965776572735f6f70656e65645f7469636b6574223a302c22766965776572735f736574746f70626f785f726570616972223a302c22766965776572735f656469745f74696d65223a6e756c6c2c22766965776572735f656469745f75736572735f6964223a6e756c6c2c22766965776572735f73656c6663617265223a7b2264617465223a222d303030312d31312d33302030303a30303a30302e303030303030222c2274696d657a6f6e655f74797065223a332c2274696d657a6f6e65223a22417369612f52616e676f6f6e227d2c22766965776572735f6269727468646179223a6e756c6c7d
  </code></pre>
  
  <p><a href="http://string-functions.com/hex-string.aspx" rel="nofollow noreferrer">Here</a> you could convert hex to string. </p>
  
  <p>Does it means the problem is on server?</p>