我正在调用API并接收英语和乌尔都语的回复。响应存储在字符串中,urdu部分显示字符文本,如“/ u024 /”。
我一直在实现这个代码集,它给出了与之前urdu字符相同的结果。如果有人可以帮我解决这个问题
String fontPath = "urdu.ttf";
// text view label
TextView txtGhost = (TextView) findViewById(R.id.ghost);
// Loading Font Face
Typeface tf = Typeface.createFromAsset(getAssets(), fontPath);
// Applying font
txtGhost.setTypeface(tf);
答案 0 :(得分:2)
您在Unicode中的回复, 试试这个
TextView tv=(TextView)findViewById(R.id.textViewmyView);
final Typeface tf = Typeface.createFromAsset(this.getAssets(),"asunaskh.ttf");
tv.setTypeface(tf);
tv.setText(Html.fromHtml(yourText);
如果上面没有工作
,请添加此项String str = myString.split(" ")[0];
str = str.replace("\\","");
String[] arr = str.split("u");
String text = "";
for(int i = 1; i < arr.length; i++){
int hexVal = Integer.parseInt(arr[i], 16);
text += (char)hexVal;
}
或者
textview.setText(Html.from(StringEscapeUtils.unescapeJava(unicode))); //this method
了解更多信息:请参阅此How to use unicode in Android resource?
How to convert a string with Unicode encoding to a string of letters
答案 1 :(得分:0)
请尝试使用此字体代替当前字体:http://www.quran.or.kr/urdu/font/asunaskh.ttf
try {
txtGhost.setTypeface(Typeface.createFromAsset(this.getAssets(),"asunaskh.ttf"));
txtGhost.setText("ur text");
}
catch(Exception ex) {
Log.e("TAG", ex.toString());
}
而且,你在案件中遇到了什么错误?
有关语言支持的更多信息:how to add language support to android