.substring()在Unix / Linux上处理Java中的多字节字符时

时间:2013-04-23 17:02:04

标签: java encoding decoding multibyte

我有一个编码字符串(创建其中没有关于并且可能无法更改的信息),其开头有8个随机字符(在编码之前和解码之后)。然后有效数据开始。解码后的字符串:String plainText = @#$%^&@#valid_data

现在,当我执行plainText.substring(8)时,我会获得 valid_data 。有时候,随机字符是多字节的,如普%^& @#valid_data ,其中普通有3个字符。对此进行plainText.substring(8)会返回 lid_data 。普数计为1,因此8个字符一直延伸到 va

我想要的是,我的代码将普数计算为3,因此只从字符串plainText中删除普通%^& @#。

我的php对应物通过使字符串函数multibyte-unsafe轻松实现了这一点。即使用substr()代替mb_substr()

这在Java中可行吗?或者确保不丢失有效数据的唯一方法是确保多字节字符根本不加密?

编辑:我应该添加这个 - 这在我的本地Windows环境中可行,但在Staging unix环境中却没有。

1 个答案:

答案 0 :(得分:-1)

有效数据总是以相同的字符开头吗?或者随机字符总是以相同的结尾?

PS:sry在这里问这个,我还不能评论帖子......