代码如下,有更好的意见请留言.
public static void main(String[] args) throws Exception {
String encode = "UTF-8";
// 截取10字节,不出错
int sublen = 10;
// UTF-8字节
String srcStr = "出错出hh错出错hello1出错";
// 先转化成char
char[] srcStrChars = srcStr.toCharArray();
int cnt = 0;
Charset cs = Charset.forName(encode);
CharBuffer cb = CharBuffer.allocate(1);
ByteBuffer resultBuff = ByteBuffer.allocate(sublen);
for (int i = 0; i < srcStrChars.length; i++) {
char c = srcStrChars[i];
cb.put(c);
cb.flip();
ByteBuffer bb = cs.encode(cb);
cnt += bb.array().length;
if(cnt > sublen){
break;
}
resultBuff.put(bb);
cb.clear();
}
String result = new String(resultBuff.array(), encode);
System.out.println(result);
}
本文详细介绍了使用Java将字符串截取指定字节数并进行UTF-8编码转换的过程,包括字符数组转char、字符数组处理、编码、字节长度计算和输出。适用于需要对字符串进行特定长度的UTF-8编码处理的应用场景。

被折叠的 条评论
为什么被折叠?



