Android中的getBytes(int start,int end,byte [] data,int index)

时间:2012-02-09 08:08:24

标签: android character-encoding

我正在尝试在我的示例Android应用程序中使用getBytes(int start, int end, byte[] data, int index)方法并在模拟器中进行测试。

我发现该方法在Android 2.0 - 2.3

中运行良好

但是在Android 3.0 - 3.1的情况下,它会抛出java.lang.StringIndexOutOfBoundsException

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.opview);

        String test="TEST1234";
        byte [] bb = new byte[10];
        test.getBytes(0, 4, bb, 6);
        Log.i("TAG", "Output :"+(new String(bb)));
        Log.i("TAG", "OnCreate() End ");
    }

此外,我发现IndexOutOfBoundsException无法发生,因为我的输入不符合以下条件

  

如果开始< 0,结束> length(),index< 0或结束 - 开始> data.length -   索引。

Android 3.0中是否存在编码问题?

我的问题的解决方法是什么?

1 个答案:

答案 0 :(得分:0)

如果你仔细查看Android documentation,就会看到getBytes(int start, int end, byte[] data, int index)已被弃用。您将使用getBytes()getBytes(String)

这很可能是因为它在Android 3.0中表现得很奇怪。