2015-07-28 60 views
1

我知道這似乎是一個愚蠢的問題,應該已經問過,但我沒有找到問題的簡單要求和回答。如何在textview中設置帶有口音的文本?

我的表現在第一行:

<?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

你知道如何顯示口音?

+0

<?xml version =「1.0」encoding =「utf-8」?>這個也在你的xml中 –

+1

你試過用'Html.fromHtml'嗎? –

+0

@ρяσѕρєяK是的,我試過 – lambdaDev

回答

3

當java源文本使用某種非ASCII編碼時,編輯器和javac編譯器需要使用相同的編碼。

第一個檢查是使用u轉義的特殊字符:嘗試\ u00e9而不是é,以查看編輯器是否使用編譯器以外的其他編碼。

在上面的一個字符變成了佔位符字符。這意味着編輯器可能使用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轉義所有特殊字符,第二使UTF-8字符。

1

發生這種情況是因爲您將此文本設置爲英文文本並且模擬器將此識別爲僅英文,而他不理解的文字打印爲給定。

爲了避免您將此文字的字體設置爲此處顯示的語言。這個問題是由於uni編碼格式

+0

我以爲它,我檢查了我在Android Studio中有UTF-8的IDE編碼和項目編碼設置,那麼如何更改uni編碼格式? – lambdaDev

+0

我在使用某些區域字體時遇到了此問題,因此您可以設置字體 – theLazyFinder

+0

您的IDE和項目編碼不適用於設備或模擬器。對於那些你必須使用字體設置不同的編碼 – theLazyFinder

0

你必須設置字體。 fontTextView.setTypeface(mFace);

0

如果您在某些字符處於不同語言環境時出現奇怪的結果,請確保您沒有使用不支持這些字符的字體。退回到不使用字體(不要調用setTypeface)並測試。

相關問題