我们在存储字符串到MySQL数据库时,英文是占据一个字节,而中文等却是占据2个字节甚至更多,如何在入库前判断实际的长度呢?我们可以通过getBytes方法获取存储长度,保证不会超出存储大小。
代码如下:
/**
* 获取字符串实际的存储长度
* @param str 字符串
* @return int
*/
public static int getActualLength(String str) {
if (StringUtil.isEmptyOrNull(str)) {
return 0;
}
return str.getBytes(Charset.forName("UTF-8")).length;
}
/**
* 获取字符串实际的存储长度
* @param str 字符串
* @param charsetName 编码格式
* @return int
*/
public static int getActualLength(String str, String charsetName) {
if (StringUtil.isEmptyOrNull(str)) {
return 0;
}
if (StringUtil.isEmptyOrNull(charsetName)) {
charsetName = "UTF-8";
}
return str.getBytes(Charset.forName(charsetName)).length;
}
领取专属 10元无门槛券
私享最新 技术干货