有没有办法在我的手机上的TextView中显示所有Unicode字符?
我尝试过像'\ u0279'这样的特殊字符,我得到像box(默认字符)的东西。 这是基于l10n和i18n设置吗?
答案 0 :(得分:14)
tv=(TextView)findViewById(R.id.textView1);
Typeface font= Typeface.createFromAsset(getAssets(), "TAU_BHON.TTF");
tv.setTypeface(font);
将支持您的语言的字体放在assets文件夹中。在这种情况下,我使用了TAU_BHON.TTF
答案 1 :(得分:13)
这通常是因为使用字体,默认的不支持/已实现所有unicode字符,您需要使用像DejaVuSans这样的全功能字体。 ttf
@sakthi显示一个应该没有问题的样本,检查你的android版本是否支持它
答案 2 :(得分:10)
试试这段代码:
String str = "\u00F6";
System.out.println("new value-" + str);
你会得到:
new value-ö
以下是我为检查功能而创建的示例Android项目:
Java文件:
package com.testd;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String str = "\u00F6";
TextView tv = (TextView) findViewById(R.id.a);
tv.setText("sajklasdklfjasdf " + str );
}
}
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/a" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
</LinearLayout>
屏幕截图: