业务场景:Oracle数据字符集UTF-8,字段类型为VARCHAR2(2000)。当插入字符串的字节长度超过2000时,就会报错,使用subString(0,2000)当字符串包含中文时,也会报错,又不能直接只截取1000长度。所以需要一个根据字节长度来截取字符串的方法。 下面提供一下 ...
Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。但目前很多流行的语言,如C Java内部采用的都是 Unicode UCS 编码,在这种编码中所有的字符都是两个字符,因此,如果要截取的字符串是中 英文 数字混合的,就会产生问题,如下面的字符串: Strings a加b等于c,如果a等 b等于 ,那么c等 上面的字符串既有汉字,又有英文字符和数字。如果要截 ...
2013-04-10 12:09 2 8646 推荐指数:
业务场景:Oracle数据字符集UTF-8,字段类型为VARCHAR2(2000)。当插入字符串的字节长度超过2000时,就会报错,使用subString(0,2000)当字符串包含中文时,也会报错,又不能直接只截取1000长度。所以需要一个根据字节长度来截取字符串的方法。 下面提供一下 ...
默认的截取字符串都是根据字符长度或位置截取的,典型的两个方法是substr和substring。 这样导致的问题是截取同样长度的字符串时,多字节字符(汉字等)和单字节字符(半角英文字母、半角数字)占的位置长度差距较大,视觉上不太美观,比如同样是10个字符: /* * param ...
public static String subStr(String str, int subSLength) { String subStr =""; try ...
...
import java.io.UnsupportedEncodingException;import org.springframework.util.StringUtils; public class CutString{ /** *判断是否是一个中文汉字 *@param c 字符 ...
解析:上面这个方法将汉字默认为2个字节,其他为1个字节,缺点是遇到UTF-8等编码格式的时候不能用,经过代码验证"UTF-8"是默认一个汉字占3个字节。 结果:--str1.length=62----Byte长度=105-------str2=一百二十个字符怎么就那么难弄呢我该说 ...
/// <summary> /// 按指定(字节)长度截取字符串 /// </summary> /// <param name="str">源字符串</param> ...