在TextView中显示所有Unicode字符

zme*_*eda 14 unicode android textview

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

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

sak*_*thi 14

tv=(TextView)findViewById(R.id.textView1);
Typeface font= Typeface.createFromAsset(getAssets(), "TAU_BHON.TTF");
tv.setTypeface(font); 
Run Code Online (Sandbox Code Playgroud)

将支持您的语言的字体放在assets文件夹中.在这种情况下,我使用了TAU_BHON.TTF


yer*_*dis 13

这通常是因为使用的字体,默认的不支持/已经实现了所有unicode字符,你需要使用像DejaVuSans.ttf这样的全功能字体

@sakthi显示一个应该没有问题的样本,检查你的Android版本是否支持它


mud*_*dit 10

试试这段代码:

String str = "\u00F6";

System.out.println("new value-" + str);
Run Code Online (Sandbox Code Playgroud)

你会得到:

new value-ö
Run Code Online (Sandbox Code Playgroud)

这是我为检查功能而创建的示例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 );
    }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

屏幕截图:

在此输入图像描述