印地语文本在android中无法正确呈现

我正在开发一个应用程序,我必须在textview显示从服务器响应中收到的文本。 案文可以是English or Hindi 。 在印地文的情况下,一些字母被问号(?)取代。 这是什么问题? 这就是我设置文本的方式。 Android version 6 。 字体types – Proxima Nova Alt Regular

  for (int i = 0; i < 3; i++) { viewHolder.lines[i].setText(poem.lines[i].lineText); } 

在此处输入图像描述

从你的问题来看,似乎某些字母正在呈现,而其他字母却没有。 这显然是字体兼容性问题。 如果您想使用自定义字体,请下载适用于您的Android版本的新字体。

但是,在许多新的Android设备(特别是Android 6及更高版本)中,默认支持印地语。 因此,在这种情况下,只需检查手机的Settings --> Language & input 。 如果支持印地语,那么只需将应用程序的区域设置更改为印地语即可。

 Configuration.Locale = new Locale("hi", "IN"); 

在应用资产文件夹中创建一个字体文件夹,并将自定义字体放在那里。 然后在TextView中设置fontFamily属性,如下所示:

   

从这里下载印地语字体: http : //fonts.webtoolhub.com/font-n17979-kruti-dev-010.aspx

将此字体放在“assets”文件夹中:app / src / main / assets / kruti-dev-010.ttf

 Typeface hindiFont = Typeface.createFromAsset(MainActivity.this.getAssets(), "fonts/Kruti_Dev_010.ttf"); txtFont.setTypeface(hindiFont); txtFont.setText("एनडीटीवी इंडिया : हिन्दी समाचार की आधिकारिक वेबसाइट"); 

尝试将字符串转换为UTF-8类的

 viewHolder.lines[i].setText(URLDecoder.decode(poem.lines[i].lineText,"UTF-8");