如何在textview中设置带重音的文本?

时间:2015-07-28 09:41:07

标签: java android

我知道这似乎是一个应该被问到的愚蠢问题,但我没有发现这个问题只是被问及回答。

我的清单在第一行:

 <?xml version="1.0" encoding="utf-8"?>

如果我有xml布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text_target"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_blue_light"
        android:layout_margin="10dp"
        android:text="" />
    </LinearLayout>

和java代码:

 TextView question = (TextView) findViewById(R.id.text_target);
 String text = "Lorsqu'ils sont utilisés, les accents peuvent être un plus à apporter à leur texte.";
 question.setText(question.setText(Html.fromHtml(text)));

显示:

enter image description here

你知道如何显示重音吗?

5 个答案:

答案 0 :(得分:3)

当java源文本采用某种非ASCII编码时,编辑器和javac编译器需要使用相同的编码。

第一项检查是使用u-escaped特殊字符:尝试\ u00e9而不是é,看看编辑器是否使用了编译器以外的其他编码问题。

在上面的一个char成为占位符char。这意味着编辑器可能使用Windows Latin-1(典型的法语),而javac使用的是UTF-8。

两者应始终如一。而对于国际化目的,UTF-8是最好的。

然后需要转换java源代码。像Notepad ++或JEdit这样的程序员编辑可以做到这一点。还有java工具native2ascii

native2ascii -encoding Cp1252 X.java X-a.java
native2ascii -reverse -encoding UTF-8 X-a.java X.java

第一个u-escape所有特殊字符,第二个产生UTF-8字符。

答案 1 :(得分:1)

发生这种情况是因为您将此文本设置为英文文本,并且模拟器将其识别为仅英文,并且他不能理解的单词打印为给定。

为避免您将此文本的字体设置为此处显示的语言。此问题是由于单编码格式

答案 2 :(得分:0)

你必须设置字体。 fontTextView.setTypeface(MFACE);

答案 3 :(得分:0)

如果您在不同的区域设置中使用某些字符会得到奇怪的结果,请确保您不使用不支持这些字符的字体。回退不使用字体(不要调用setTypeface)并测试那种方式。

答案 4 :(得分:0)

这对我有用:

myVariable.setText("% de usuarios que dicen que regresar"+Html.fromHtml("&aacute;")+"n ("+Integer.toString(productDetail.surveyresponses)+" respuestas)");

我可以使用HTML的&aacute;来生成所需的á