在TextView中显示所有Unicode字符

时间:2011-05-19 06:46:00

标签: android unicode textview

有没有办法在我的手机上的TextView中显示所有Unicode字符?

我尝试过像'\ u0279'这样的特殊字符,我得到像box(默认字符)的东西。 这是基于l10n和i18n设置吗?

3 个答案:

答案 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>

屏幕截图:

enter image description here