0

xml

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffb6c1" >
             <TextView
                 android:id="@+id/def"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                 android:layout_centerHorizontal="true"
                 android:background="@android:color/white"
                 android:textAppearance="?android:attr/textAppearanceLarge"
                 android:textSize="24dp" />           
    </RelativeLayout>
</ScrollView>

例如,我的句子中有File.txt这样的:

句子=(这是疯狂的一天)。

在我的 View LargeText 中输出它(?)是疯狂的一天。

我想知道这个错误的答案我已经尝试实现StringBuilder类,但我不知道如何使它适用于 android。

这是我所做的所有更改,但仍然没有成功。

package org.health.canser;

public void onCreate(Bundle savedInstanceState)
{
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
              WindowManager.LayoutParams.FLAG_FULLSCREEN);
             //setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.breast);
    getFile(breastFile);

}

//my text fiel input section===============================================================================
public String loadTextFile(InputStream inputStream) throws IOException {
    ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
    byte[] bytes = new byte[4096];
    int len = 0;
    while ((len = inputStream.read(bytes)) > 0)
    byteStream.write(bytes, 0, len);
    //return new String(byteStream.toByteArray(), "UTF8");
    return new String(byteStream.toByteArray(), "UTF-8");
    }

public void getFile(String fileName)
{


     breast= (View) findViewById(R.id.breastDef);
    AssetManager assetManager = getAssets();
    InputStream inputStream = null;
    try {
    inputStream = assetManager.open(fileName);
    String text = loadTextFile(inputStream);
    Log.i("Msg","msg: " + text);
         ((TextView) breast).setText(text);



    } catch (IOException e) {
    ((TextView) breast).setText("Couldn't load file");
    } finally { 
    if (inputStream != null)
    try {
    inputStream.close();
    } catch (IOException e) {
    ((TextView) breast).setText("Couldn't close file");
    }
    }


}

}

输出:

01-07 15:03:53.628: I/Msg(24930): 风险因素:除了女性,年龄增长是乳腺癌最重要的风险因素。潜在可改变的风险因素包括 18 岁后体重增加、超重或肥胖(绝经后乳腺癌)、使用 MHT(雌激素和孕激素联合治疗)、缺乏运动和饮酒。预测较高风险的医学发现包括高乳房组织密度(乳房 X 线摄影测量腺体组织相对于乳房中脂肪组织的数量)、高骨矿物质密度(低密度的女性患骨质疏松症的风险增加)和活检确认增生(细胞过度生长),尤其是非典型增生(细胞过度生长,看起来不正常)。用于癌症治疗的胸部高剂量辐射也会增加风险。30岁以后的第一个孩子。

4

1 回答 1

1

这可能不是一个直接的答案,但它应该有很大帮助:

package test;

public class Test {

    public static void main(String... args) throws Exception {
        String czech = "Český";
        String japanese = "日本語";

        System.out.println("UTF-8 czech: " + new String(czech.getBytes("UTF-8")));
        System.out.println("UTF-8 japanese: " + new String(japanese.getBytes("UTF-8")));

        System.out.println("ISO-8859-1 czech: " + new String(czech.getBytes("ISO-8859-1")));
        System.out.println("ISO-8859-1 japanese: " + new String(japanese.getBytes("ISO-8859-1")));
    }

}

UTF-8 捷克语:捷克语
UTF-8 日语:日本语<br> ISO-8859-1 捷克语:?esk�<br> ISO-8859-1 日语:???

ISO-8859-1 是安卓的标准编码。所以这就是为什么你可能会得到“?” 字符,而不是正确的字符。

您需要将其更改为 UTF-8。
我想你可以看看上面的例子。

于 2013-01-07T13:42:14.710 回答