在android webview中显示Malayalam Unicode字体

Bas*_*rif 5 fonts android

我正在开发一个Android RSS阅读器.

我的工作差不多完成了,但是当我使用Malayalam Unicode字体时,我遇到了问题WebView.

我使用以下方法来显示RSS提要:

String CurrentDescription = headlinesarray.Description[Number];

Description.loadDataWithBaseURL (null, "<html><head><style>@font-face{font-family:'MeeraRegular'; src: url('file:///android_asset/fonts/Meera.ttf');}body{font-family:'MeeraRegular'; font-size:20px; } </style></head><body>"+CurrentDescription+"</body></html>", "text/html", "UTF-8",
    null);
Run Code Online (Sandbox Code Playgroud)

当我使用这种方法时,它会显示Malayalam字体,但不正确.许多字符都是错位的.它很难读懂.

这是一个屏幕截图:

屏幕截图

Bas*_*rif 6

最后我找到了一个解决方案.我将Unicode字体转换为Ascii,用Ascii替换每个Unicode字符.我使用MLTT-Karthika作为Ascii字体.然后在字体中设置这个字体.

    t=(TextView) findViewById(R.id.text);
        Typeface typeFace = Typeface.createFromAsset(getAssets(),"karthika.TTF");
        t.setTypeface(typeFace);

        String CurrentDecription;
 String s2=s.toLowerCase().replaceAll("?", "A").replaceAll("?","B")
          .replaceAll("?","C")
            .replaceAll("?","Cu")
            .replaceAll("?","D")
            .replaceAll("?","Du")
            .replaceAll("?","E")
            .replaceAll("?","F")
            .replaceAll("?","G")
            .replaceAll("?","sF")
            .replaceAll("?","H")
            .replaceAll("?","Hm")
            .replaceAll("?","Hu")
            .replaceAll("????","tà").replaceAll("????","sà").replaceAll("?????","ày").replaceAll("????","ssà").replaceAll("???","à").replaceAll("?????","£y").replaceAll("????","s£").replaceAll("????","t£").replaceAll("????","ss£").replaceAll("???","£").replaceAll("????","sÎ").replaceAll("????","tÎ").replaceAll("???","Î").replaceAll("????","s¦").replaceAll("????","t¦").replaceAll("????","ss¦").replaceAll("???","¦").replaceAll("????","s¢").replaceAll("????","t¢").replaceAll("????","ss¢").replaceAll("???","¢").replaceAll("????","t¡").replaceAll("????","t¡m").replaceAll("????","s¡").replaceAll("??","sIm").replaceAll("??","sI").replaceAll("??","tIm").replaceAll("??","tI").replaceAll("???","Iz").replaceAll("????","ss{I").replaceAll("????","t{Im").replaceAll("????","t{I").replaceAll("????","s{Im").replaceAll("????","s{I").replaceAll("???","{I").replaceAll("???","Iy").replaceAll("????","ss¡").replaceAll("???","¡").replaceAll("??","ssI").replaceAll("?","I")
            .replaceAll("??","tJ").replaceAll("??","ssJ").replaceAll("??","sJ").replaceAll("???","Jz").replaceAll("???","Jy").replaceAll("?","J")
            .replaceAll("????","s¥").replaceAll("????","t¥").replaceAll("????","ss¥").replaceAll("???","¥").replaceAll("????","t¤").replaceAll("????","ss¤").replaceAll("????","s¤").replaceAll("??","ssK").replaceAll("??","sKm").replaceAll("??","sK").replaceAll("???","Kz").replaceAll("???","Ky").replaceAll("??","Kr").replaceAll("????","ss{K").replaceAll("???","{K").replaceAll("???","¤").replaceAll("??","tKm").replaceAll("??","tK").replaceAll("?","K")
            .replaceAll("??","ssL").replaceAll("??","sLm").replaceAll("??","sL").replaceAll("??","tLm").replaceAll("??","tL").replaceAll("?","L")
            .replaceAll("????","ss§").replaceAll("????","s§").replaceAll("????","t§").replaceAll("?????","§y").replaceAll("???","§").replaceAll("??","tM").replaceAll("??","ssM").replaceAll("??","sM").replaceAll("?","M")
            .replaceAll("????","ss©").replaceAll("????","s©").replaceAll("????","t©").replaceAll("?????","©y").replaceAll("???","©").replaceAll("????","t¨").replaceAll("????","ss¨").replaceAll("????","s¨").replaceAll("??","tNm").replaceAll("??","tN").replaceAll("??","ssN").replaceAll("??","sNm").replaceAll("??","sN").replaceAll("???","{N").replaceAll("???","Ny").replaceAll("???","¨").replaceAll("?","N")
            .replaceAll("??","ssO").replaceAll("??","sO").replaceAll("??","tO").replaceAll("?","O")
            .replaceAll("????","ssÚ").replaceAll("????","sÚ").replaceAll("????","tÚ").replaceAll("???","Ú").replaceAll("????","tÖ").replaceAll("????","ssÖ").replaceAll("????","sÖ").replaceAll("???","Ö").replaceAll("??","ssP").replaceAll("??","sPm").replaceAll("??","sP").replaceAll("???","Pz").replaceAll("???","Py").replaceAll("???","{P").replaceAll("??","tPm").replaceAll("??","tP").replaceAll("?","P")
            .replaceAll("??","ssQ").replaceAll("??","sQ").replaceAll("??","tQ").replaceAll("?????","Qy").replaceAll("?","Q")
            .replaceAll("????","ssª").replaceAll("????","sª").replaceAll("????","tª").replaceAll("???","ª")
            .replaceAll("??","ssR").replaceAll("??","sR").replaceAll("??","tR").replaceAll("?","R")
            .replaceAll("????","sâ").replaceAll("????","tâ").replaceAll("???","â").replaceAll("????","ssî").replaceAll("????","sî").replaceAll("????","tî").replaceAll("?????","îy").replaceAll("???","î").replaceAll("?????","«y").replaceAll("????","ss«").replaceAll("????","s«").replaceAll("????","ss{S").replaceAll("????","t{Sm").replaceAll("????","t{S").replaceAll("????","s{S").replaceAll("??","ssS").replaceAll("??","sSm").replaceAll("??","sS").replaceAll("???","{S").replaceAll("???","Sz").replaceAll("???","Sy").replaceAll("????","t«m").replaceAll("????","t«").replaceAll("???","«").replaceAll("??","tSm").replaceAll("??","tS").replaceAll("?","S")
            .replaceAll("??","ssT").replaceAll("??","sT").replaceAll("??","tT").replaceAll("???","Ty").replaceAll("?","T")

            .replaceAll("????","ss{U").replaceAll("????","t{U").replaceAll("????","s{U").replaceAll("??","ssU").replaceAll("??","sU").replaceAll("???","{U").replaceAll("??","tU").replaceAll("??","tUm").replaceAll("?","U")
            .replaceAll("??","ssV").replaceAll("??","sV").replaceAll("??","tV").replaceAll("?","V")
            .replaceAll("????","ss×").replaceAll("????","s×").replaceAll("????","t×").replaceAll("???","×").replaceAll("????","ss®").replaceAll("????","s®").replaceAll("??","ssW").replaceAll("??","sW").replaceAll("???","¬").replaceAll("????","t®").replaceAll("???","®").replaceAll("??","tW").replaceAll("?","W")
            .replaceAll("????","ss°").replaceAll("????","s°").replaceAll("????","t°").replaceAll("?????","°y").replaceAll("???","°").replaceAll("????","ssß").replaceAll("????","sß").replaceAll("????","tß").replaceAll("???","ß").replaceAll("????","ss¯").replaceAll("????","s¯").replaceAll("????","ss´").replaceAll("????","s´").replaceAll("??","ssX").replaceAll("??","sXm").replaceAll("??","sX").replaceAll("???","Xz").replaceAll("?????","{´").replaceAll("?????","´y").replaceAll("????","t´").replaceAll("????","t´m").replaceAll("???","´").replaceAll("????","tXy").replaceAll("???","Xy").replaceAll("??","Xr").replaceAll("????","ss{X").replaceAll("????","t{Xm").replaceAll("????","t{Xm").replaceAll("????","t{X").replaceAll("????","s{X").replaceAll("???","{X").replaceAll("????","t¯").replaceAll("???","¯").replaceAll("??","tXm").replaceAll("??","tX").replaceAll("?","X")


            .replaceAll("??","ssY").replaceAll("??","sY").replaceAll("??","tY").replaceAll("?","Y")                                   
            .replaceAll("????","t²").replaceAll("????","ss²").replaceAll("????","s²").replaceAll("???","²").replaceAll("????","ssÐ").replaceAll("????","sÐ").replaceAll("????","tÐ").replaceAll("???","Ð").replaceAll("????","ssµ").replaceAll("????","sµ").replaceAll("????","tµ").replaceAll("??????","t{µ").replaceAll("??????","ss{µ").replaceAll("??????","s{µ").replaceAll("?????","{µ").replaceAll("???","µ").replaceAll("????","ss±").replaceAll("????","s±").replaceAll("????","t±").replaceAll("???","±").replaceAll("??","ssZ").replaceAll("??","sZ").replaceAll("????","ssZz").replaceAll("????","tZz").replaceAll("???","Zz").replaceAll("????","sZy").replaceAll("????","tZy").replaceAll("???","Zy").replaceAll("??","Zr").replaceAll("??","tZ").replaceAll("?","Z")
            .replaceAll("????","sÏ").replaceAll("????","tÏ").replaceAll("???","Ï").replaceAll("??????","s{Ô").replaceAll("?????","Ôy").replaceAll("?????","{Ô").replaceAll("????","sÔ").replaceAll("????","tÔ").replaceAll("???","Ô").replaceAll("??","ss[").replaceAll("??","s[").replaceAll("???","[y").replaceAll("??","[r").replaceAll("??","t[").replaceAll("?","[")
           .replaceAll("??&zwj;??","sâ").replaceAll("??&zwj;??","tâ").replaceAll("????","sâ").replaceAll("????","tâ").replaceAll("??&zwj;?","â").replaceAll("???","â").replaceAll("??&zwj;","³").replaceAll("???","³").replaceAll("????","ss¶").replaceAll("????","s¶").replaceAll("????","t¶").replaceAll("???","¶").replaceAll("????","ss?").replaceAll("????","s?").replaceAll("????","t?").replaceAll("???","?").replace("??","ss\\").replace("??","s\\m").replace("??","s\\").replace("????","t\\z").replace("????","s\\z").replace("???","\\z").replace("???","\\y").replace("??","t\\m").replace("??","t\\").replace("?","\\")
            .replaceAll("????","ss¼").replaceAll("????","s¼").replaceAll("?????","¼y").replaceAll("????","t¼").replaceAll("???","¼").replaceAll("????","så").replaceAll("????","tå").replaceAll("???","å").replaceAll("????","ts¹").replaceAll("????","ss¹").replaceAll("????","s¹").replaceAll("???","¹").replaceAll("????","t¸").replaceAll("????","ss¸").replaceAll("????","s¸").replaceAll("??","ss]").replaceAll("??","s]m").replaceAll("??","s]").replaceAll("???","]y").replaceAll("????","t{]").replaceAll("????","ss{]").replaceAll("????","s{]").replaceAll("???","{]").replaceAll("????","t¸").replaceAll("???","¸").replaceAll("??","t]m").replaceAll("??","t]").replaceAll("?","]")
            .replaceAll("????","^vssf").replaceAll("????","^vsf").replaceAll("????","^vtf").replaceAll("???","^vf").replaceAll("??","ss^").replaceAll("??","s^m").replaceAll("??","s^").replaceAll("??","t^m").replaceAll("??","t^").replaceAll("???","{^").replaceAll("?","^")
            .replaceAll("????","ss»").replaceAll("????","s»").replaceAll("????","t»").replaceAll("???","»").replaceAll("????","ssº").replaceAll("????","sº").replaceAll("??","ss_").replaceAll("??","s_m").replaceAll("??","s_").replaceAll("????","t{_").replaceAll("????","ss{_").replaceAll("????","s{_").replaceAll("???","{_").replaceAll("????","tº").replaceAll("???","º").replaceAll("??","t_m").replaceAll("??","t_").replaceAll("?","_")
            .replaceAll("??","ss`").replaceAll("??","s`").replaceAll("???","`z").replaceAll("???","{`").replaceAll("???","`y").replaceAll("??","`r").replaceAll("??","t`").replaceAll("?","`")
            .replaceAll("????","ss½").replaceAll("????","s½").replaceAll("??","ssa").replaceAll("??","sam").replaceAll("??","sa").replaceAll("???","ay").replaceAll("??","ar").replaceAll("????","t½").replaceAll("???","½").replaceAll("??","tam").replaceAll("??","ta").replaceAll("?","a")
            .replaceAll("???","ey").replaceAll("???","cy").replaceAll("???","jy").replaceAll("???","ly").replaceAll("????","tky").replaceAll("???","ky").replaceAll("???","iy").replaceAll("???","hy").replaceAll("????","ss¿").replaceAll("????","s¿").replaceAll("??","tbm").replaceAll("??","ssb").replaceAll("??","sb").replaceAll("????","t¿").replaceAll("???","¿").replaceAll("??","tb").replaceAll("?","b")
            .replaceAll("???","{l").replaceAll("????","t{k").replaceAll("???","{k").replaceAll("???","{h").replaceAll("????","t{i").replaceAll("???","{i").replaceAll("??","ssc").replaceAll("??","scm").replaceAll("??","sc").replaceAll("???","cz").replaceAll("??&zwj;","À").replaceAll("???","À").replaceAll("???","cy").replaceAll("??","tcm").replaceAll("??","tc").replaceAll("?","c")
            .replaceAll("????","ssä").replaceAll("????","sä").replaceAll("????","tä").replaceAll("????","täm").replaceAll("???","ä").replaceAll("??","ssd").replaceAll("??","sd").replaceAll("??","td").replaceAll("?","d")
            .replaceAll("????","sË").replaceAll("????","tË").replaceAll("???","Ë").replaceAll("????","sÇ").replaceAll("????","tÇ").replaceAll("???","Ç").replaceAll("????","ssÃ").replaceAll("????","sÃm").replaceAll("????","sÃ").replaceAll("??","sse").replaceAll("??","sem").replaceAll("??","se").replaceAll("?????","Ãz").replaceAll("???","Ã").replaceAll("??&zwj;","Â").replaceAll("???","Â").replaceAll("?????","Ãy").replaceAll("????","tÃm").replaceAll("????","tÃ").replaceAll("???","Ã").replaceAll("??","tem").replaceAll("??","te").replaceAll("?","e")
            .replaceAll("???","Å").replaceAll("??&zwj;","Ä").replaceAll("???","Ä").replaceAll("????","ssÅ").replaceAll("????","sÅ").replaceAll("??","ssf").replaceAll("??","sf").replaceAll("???","Å").replaceAll("????","tÅ").replaceAll("??","tf").replaceAll("?","f")
            .replaceAll("??","ssg").replaceAll("??","sg").replaceAll("??","tg").replaceAll("?","g")
            .replaceAll("????","ssjz").replaceAll("????","sjz").replaceAll("???","jz").replaceAll("???","lz").replaceAll("????","tkz").replaceAll("????","sskz").replaceAll("????","skz").replaceAll("???","kz").replaceAll("????","ssÆ").replaceAll("????","sÆ").replaceAll("??","ssh").replaceAll("??","sh").replaceAll("????","tiz").replaceAll("???","iz").replaceAll("????","tÆ").replaceAll("???","Æ").replaceAll("??","th").replaceAll("??","thm").replaceAll("?","h")
            .replaceAll("????","ssÈ").replaceAll("????","sÈ").replaceAll("??","ssi").replaceAll("??","sim").replaceAll("??","si").replaceAll("????","t{i").replaceAll("???","{i").replaceAll("????","tÈ").replaceAll("???","È").replaceAll("??","tim").replaceAll("??","ti").replaceAll("?","i")
            .replaceAll("??","ssj").replaceAll("??","sj").replaceAll("??","tj").replaceAll("?","j")
            .replaceAll("????","ssÊ").replaceAll("????","sÊ").replaceAll("??","ssk").replaceAll("??","sk").replaceAll("???","Ê").replaceAll("????","tÊ").replaceAll("??","tk").replaceAll("??","tkm").replaceAll("?","k")
            .replaceAll("??","ssl").replaceAll("??","sl").replaceAll("??","tl").replaceAll("?","l")
            .replaceAll("?","m")
            .replaceAll("?","n")
            .replaceAll("?","o")
            .replaceAll("?","p")
            .replaceAll("?","q")
            .replaceAll("?","x")
            .replaceAll("?","v")
            .replaceAll("?","w")
            .replaceAll("?","u")

            .replaceAll("?","r")
                ;

    t.setText(s2);
Run Code Online (Sandbox Code Playgroud)