前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java string转utf-8

java string转utf-8

作者头像
用户7886150
修改2021-04-06 10:43:18
1.6K0
修改2021-04-06 10:43:18
举报
文章被收录于专栏:bit哲学院

参考链接: java字符串之-getbytes()

.. 

/**

 * Convert input string to UTF-8, copies into buffer (at given offset).

 * Returns number of bytes in the string.

 *

 * Java's internal UTF8 conversion is very, very slow.

 * This is, rather amazingly, 8x faster than the to-string method.

 * Returns the number of bytes this translated into.

 */

public static int stringToUtf8(String s, byte[] buf, int offset) {

    if (s == null) {

        return 0;

    }

    int length = s.length();

    int startOffset = offset;

    for (int i = 0; i < length; i++) {

        int c = s.charAt(i);

        if (c < 0x80) {

            buf[offset++] = (byte) c;

        }

        else if (c < 0x800) {

            buf[offset++] = (byte)(0xc0 | ((c >> 6)));

            buf[offset++] = (byte)(0x80 | (c & 0x3f));

        }

        else {

            // Encountered a different encoding other than 2-byte UTF8. Let java handle it.

            try {

                byte[] value = s.getBytes("UTF8");

                System.arraycopy(value, 0, buf, startOffset, value.length);

                return value.length;

            }

            catch (UnsupportedEncodingException uee) {

                throw new RuntimeException("UTF8 encoding is not supported.");

            }

        }

    }

    return offset - startOffset;

}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档