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

时间:2017-11-21 12:47:54

标签: android unicode utf-8 character-encoding iso-8859-1

我正在开发一个应用程序,我必须在textview中显示从服务器响应中收到的文本。文字可以在 English or Hindi 中。如果是 hindi ,则部分字母会被问号(?)替换。这是什么问题? 这就是我设置文本的方式。的 Android version 6 即可。字体类型 - Proxima Nova Alt Regular

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

enter image description here

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:-1)

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

将此字体放入&#34; assets&#34;文件夹: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("एनडीटीवी इंडिया : हिन्दी समाचार की आधिकारिक वेबसाइट");

答案 2 :(得分:-1)

尝试将字符串转换为UTF-8,如

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