`

java中计算汉字的字节数

 
阅读更多
中文并不一定是占两个字节的,具体占多少字节是跟具体的编码方式相关的。
比如说:GB2312、GBK、GB18030 编码是占用两个字节的,但是 UTF-8 编码的话至少需要占用三个字节。
有一个简单方法,就是把大于 0xff 的字符都作为两个字符(当然是在 GBK 环境下)



Java code
public static int count(String str) {
    if(str == null || str.length == 0) {
        return 0;
    }
    int count = 0;
    char[] chs = str.toCharArray();
    for(int i = 0; i < chs.length; i++) {
        count += (chs[i] > 0xff) ? 2 : 1;
    }
    return count;
}


或者你直接使用 int len = str.getBytes("gbk");

上面代码假设你的数据库编码格式是 GBK 的,而不是 UTF-8 的,如果是 UTF-8 的话,上面的代码无效!

1字节等于8比特,一个字母是1字节,而一个汉字要用2个字节。

一个汉字=2个字符

分享到:
评论

相关推荐

    计算汉字笔画数java实现

    根据提供的文件信息,本文将详细解析如何通过Java编程语言实现计算汉字笔画数的方法,并对代码中的关键逻辑进行深入分析。 ### 概述 在Java中实现计算汉字笔画数的功能,主要涉及到对汉字编码的理解以及如何根据...

    计算汉字笔画数资源chineseGBKStroke

    总的来说,"计算汉字笔画数资源chineseGBKStroke"是一个包含关键组件的资源包,适用于Java开发者进行汉字处理工作,特别是需要计算汉字笔画数和进行简繁体转换的场景。通过理解并利用这些资源,开发者可以构建高效且...

    关于java按字节截取带有汉字的字符串的解法

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...

    汉字和数字混合排序

    汉字通常使用Unicode编码,如GBK或UTF-8,每个汉字占用2至4个字节,而数字是字符型数据,如'0'到'9',在ASCII码中每个数字占用一个字节。这就意味着在比较时,如果不进行特殊处理,数字会按照其字典顺序(ASCII值)...

    Java中文字符所占的字节数

    中文字符在Java中所占用的字节数并不固定,它取决于所采用的字符编码方式。这是因为不同的编码标准有不同的字符表示机制,从而导致了字节数的不同。 首先,ISO8859-1是一种西欧字符编码,它只支持拉丁字母,不包含...

    根据字节数截取字符串

    本话题将深入探讨如何在Java语言中根据字节数来截取字符串,并结合给出的`SplitString.java`文件,我们可以推测这是一个具体的实现示例。 首先,字符串截取的基本需求是获取字符串的一部分,通常基于特定的起始和...

    Java代码实现随机生成汉字的方法

    在上面的代码中,我们使用了 Random 类来生成随机的高位字节和低位字节,然后将其组合成一个汉字。我们使用了GBK编码来表示汉字,因为GBK编码是中国大陆最常用的汉字编码。 结论 ---- Java代码实现随机生成汉字的...

    java按字节截取带有汉字的字符串的解法(推荐)

    在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...

    java中汉字得到首字母大写

    ### Java中实现汉字首字母转为大写的技巧与方法 #### 概述 在Java编程中,有时我们需要处理中文字符,并将其转换成特定格式。例如,我们可能希望将一个中文姓名转换成其拼音首字母的大写形式。这种需求在很多场景...

    统计字符串字节数统计字符串字节数

    这些示例展示了如何在不同编程语言中计算字符串的字节数,但要注意,对于包含多字节字符(如UTF-8中的非ASCII字符)的字符串,字节数会根据编码方式变化。因此,当你进行数据传输或存储时,了解字符串的编码和字节数...

    深入分析Java中的中文编码问题

    ### 深入分析Java中的中文编码问题 #### 一、引言 在软件开发过程中,尤其是涉及到国际化和多语言支持的应用中,编码问题一直是令开发者头疼的问题之一。尤其是在使用Java这种跨平台语言进行开发时,不同的操作...

    JAVA_API1.6文档(中文)

    java.nio.charset 定义用来在字节和 Unicode 字符之间转换的 charset、解码器和编码器。 java.nio.charset.spi java.nio.charset 包的服务提供者类。 java.rmi 提供 RMI 包。 java.rmi.activation 为 RMI 对象...

    java中文乱码问题

    在Java编程中,中文乱码问题是一个常见的困扰,尤其是在处理文件读写、网络传输或数据库交互等场景。这里,我们将深入探讨这个问题的原因、解决方法以及相关的编码理论。 首先,我们需要理解编码的基础知识。计算机...

    JAVA中文问题解析和最优解决办法

    本文旨在深入分析Java编程中出现中文问题的根本原因,并提出一套完整的解决方案。 #### 二、中文问题的来源 1. **计算机操作系统的演变**:早期的计算机操作系统仅支持单字节字符编码(如ASCII),随着国际化需求...

    java中文手册全部中文解释

    Java中文手册是一部全面而详尽的参考资料,旨在帮助开发者理解和掌握Java编程语言。这份手册以中文呈现,使得中文用户能够更方便地学习和查询Java的相关知识。以下将根据标题、描述以及提供的压缩文件名,详细阐述...

    Java 1.6 API 中文 New

    java.nio.charset 定义用来在字节和 Unicode 字符之间转换的 charset、解码器和编码器。 java.nio.charset.spi java.nio.charset 包的服务提供者类。 java.rmi 提供 RMI 包。 java.rmi.activation 为 RMI 对象激活...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在 `SplitIt` 方法中,我们首先计算需要截取的 loop 数,然后使用 `for` 循环来截取指定字节的字符串。在循环中,我们使用 `substring` 方法来截取字符串,并将结果输出。 main 方法 在 `main` 方法中,我们创建了...

    Java中变量类型及其字节长度.docx

    ### Java中变量类型及其字节长度详解 #### 一、变量定义与分类 在Java编程语言中,**变量**是一个非常基础且重要的概念。简单来说,变量是一个由标识符定义的数据项,它主要包括三个组成部分:类型、名称以及值。...

    Java虚拟机规范中文版(JavaSE7).pdf

    Java虚拟机(JVM)是Java编程语言的核心组成部分,它是一种抽象的计算设备,能够运行Java字节码。Java虚拟机规范(Java SE 7版)是定义JVM行为的官方文档,确保所有Java平台的实现遵循相同的规则,以提供跨平台的...

Global site tag (gtag.js) - Google Analytics