有阿拉伯语字体渲染正确的Android应用程序的麻烦

时间:2014-09-01 05:17:09

标签: java android text arabic

我的Android应用程序未在显示广播播放器和文本的视图上正确显示阿拉伯语字体。我在阿拉伯语文本中得到符号(百分比唱歌,版权和注册商标符号,双倍大于符号,+ / - 符号,双逗号...所有混合阿拉伯字符)。

以下是java类文件的片段:

private void setTypeFace(){
        int os_version = ((MiraathRadio)getApplication()).os_version;
        if(os_version < 9){
            Typeface tf = Typeface.createFromAsset(getAssets(), fontpath);
            audioTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathFroyo2);
            stationTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathmotlak);
            listenerNomber.setTypeface(tf);

        }

        else {

            Typeface tf = Typeface.createFromAsset(getAssets(), fontpath2);
            audioTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathArabic2);
            stationTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathmotlak);
            listenerNomber.setTypeface(tf);

        }
    }

我已经安装了Tahoma,Froyo和mcs_jf2字体(所有TTF)但仍然无法正确呈现。

我曾尝试使用Arabizer和Farsi类文件进行连接,但现在可以使用。

如果有人想看的话,我会看到问题的屏幕截图。

我做错了什么???

非常感谢任何帮助!!

谢谢! ironmantis7x

strange arabic text

我正在发布我正在设置文本的代码:

private void setTypeFace(){
        int os_version = ((MiraathRadio)getApplication()).os_version;
        if(os_version < 9){
            Typeface tf = Typeface.createFromAsset(getAssets(), fontpath);
            audioTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathFroyo2);
            stationTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathmotlak);
            listenerNomber.setTypeface(tf);

        }

        else {

            Typeface tf = Typeface.createFromAsset(getAssets(), fontpathArabic3);
            audioTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathArabic3);
            stationTitle.setTypeface(tf);

            tf = Typeface.createFromAsset(getAssets(), fontpathArabic3);
            listenerNomber.setTypeface(tf);

我迷失在这里。任何指针和帮助都会很棒。

ironmantis7x

1 个答案:

答案 0 :(得分:1)

Alhamdulillah !!! 发现问题!!!

编码错了...... 以前的开发人员把&#34; windows-1256&#34;作为编码类型。 我把它改成了&#34; utf-8&#34;它工作得很好!!!

感谢大家的帮助!!!