`
googgoogle
  • 浏览: 65585 次
社区版块
存档分类
最新评论
阅读更多

    对于字符串的处理,经常会遇到需要判断字符是双字节还是单字节(或者全角和半角)的情况,因为双字节字符和单字节字符在屏幕上所占用的空间是不同的,通常情况下双字节字符占用的空间是单字节字符的两倍。比如,一个字符串,可能包含中文英文数字和各种符号等等,将其输出到屏幕上,需要根据长度判断在哪里进行截断(网页编程中经常用到)。<br>最常见的两种方式。<br>一种是通过String的getBytes().length来判断,单个字符构成的字符串,其getBytes().length若大于1,则为双字节字符,否则为单字节字符。不过需要注意的是,这种方式有一定缺陷,就是当使用英文操作系统来执行getBytes().length这句代码的时候,单字节双字节文本得到的结果是一样的。这是因为不同的JAVA虚拟机对于字符的处理方式不同。所以,虽然这种方法很简单,而且在大多数时候很有效,但是考虑到可能会有少部分使用英文操作系统的人,还是建议用下一种方法。<br>另外一种是通过判断某一位的字符是否大于0x80,如果大于则为双字节字符,否则为单字节字符。
 
0
0
分享到:
评论

相关推荐

    Delphi判断双字节字符的例子.rar

    Delphi判断双字节,用法简单,在窗口输入框中输入字符串,单击按钮即可,程序会判断出是否包含有双字节字符,判断方法请看下边的代码段:  s := Edit1.Text;  i := 0;  while i begin  if (ByteType(S,i) &lt;&gt; ...

    计算字符串中的单双字节字符个数

    在ASCII编码中,每个字符只需要一个字节(8位)来表示,因此称为单字节字符。这包括英文字符、数字、标点符号等。然而,对于包含多种语言和复杂字符集的Unicode编码,一个字符可能需要两个字节或更多来表示,比如...

    字符串截取(按字节)

    如果截取操作结束于一个字符的中间(即数组索引为奇数的位置),并且该字节的值小于等于0(表明这是UTF-16中的第二个字节),则代码会去除这个字节,确保字符串完整性。 #### 总结 通过上述分析,我们可以看到,按...

    C#字节数组转换成字符串.docx

    另一方面,`System.Text.Encoding.Unicode`通常指的是UTF-16编码,它总是使用两个字节来表示每个Unicode字符,无论这个字符是单字节还是双字节。因此,使用`Encoding.Unicode.GetBytes(s)`转换字符串时,所有字符...

    易语言判断文本是否数字和字母源码

    这段代码首先获取了字符的ASCII码,然后根据码值范围判断字符类型。然而,需要注意的是,易语言处理中文字符时,由于中文字符通常占用两个字节(双字节字符),所以使用ASCII码进行判断并不准确。在易语言中,处理...

    Flex 处理双字节字符(判断汉字长度)的方法

    Flex中的maxChars属性默认是按照单字节字符来计数的,这在处理英文等语言时是没有问题的,因为每个字符通常占用一个字节。但是对于双字节字符集的语言,每个字符可能占用两个甚至更多字节。因此,如果仅使用maxChars...

    Delphi判断中英文

    `ByteType` 是一个用于确定字符串中某个字符字节类型的函数。它返回一个枚举值,该枚举值表示了特定位置上字符的字节类型。在 Delphi 中,`ByteType` 的定义如下: ```pascal function ByteType(const S: string; ...

    Unicode--宽字节字符集[文].pdf

    处理DBCS字符串时,可以使用特定的函数,例如`CharNext`和`CharPrev`来获取字符串中下一个或上一个字符的地址,以及`IsDBCSLeadByte`来判断字节是否为双字节字符的第一个字节。 3. 使用Unicode的原因: - 数据交换...

    C++宽字符处理对照

    - **iswcntrl()**:判断一个宽字符是否为控制字符。 - **iswdigit()**:判断一个宽字符是否为数字。 - **iswgraph()**:判断一个宽字符是否为打印图形字符。 - **iswlower()**:判断一个宽字符是否为小写字母。 - **...

    ASP截取固定长度字符串

    1. **Left() 函数**:返回一个字符串左端的指定数量的字符。 - `Left(string, length)` - `string`:要提取的字符串。 - `length`:要返回的字符数。 2. **Mid() 函数**:返回字符串中指定位置的子字符串。 - `...

    C#字符串截取固定长度的方法

    在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术细节。 #### 方法一:使用Substring...

    汇编实现判断输入字符类型

    2. **堆栈段**(Stack Segment):这部分定义了一个大小为128个字节的堆栈区域,用于临时存放数据或函数调用过程中的信息。 3. **代码段**(Code Segment):这是程序的核心部分,包含了主要的逻辑处理过程。 ####...

    易语言判断文本是否数字和字母源码-易语言

    对于单字节字符(如英文、数字),我们可以直接通过ASCII码(American Standard Code for Information Interchange)来判断其类型。ASCII码是一个7位的二进制编码,用于表示128种不同的字符,包括大小写字母和数字。...

    易语言判断UTF-8字符源码

    3. 字节序列分析:判断一个字符串是否为UTF-8,需要检查每个字节的最高位。在易语言中,可以通过“取字节”命令获取字符串中每个字节的值,然后根据UTF-8的字节规则进行验证。 4. 错误处理:在处理编码问题时,可能...

    php字符串截取中文截取2,单字节截取模式

    这个问题在给定的代码中得到了解决,通过定义了一个名为`cn_substr`的函数,实现了中文字符串的单字节截取模式。 `cn_substr`函数接受三个参数:要截取的字符串`$str`,目标长度`$slen`以及起始位置`$startdd`。这...

    Pb字符串中的中文和英文(含符号)拆分

    - 使用 `left()` 和 `leftA()` 函数获取每个字符的第一个字节,判断其是否为中文字符。中文字符的两个字节的第一个字节与 `leftA()` 获取的字符相同,而英文字符的两个字节的第一个字节不同。 - 对于英文字符,将...

    易语言判断文本中是否有中文

    对于GB2312编码,一个中文字符由两个字节组成,前一个字节的范围在161(0xA1)到254(0xFE)之间,后一个字节的范围在161(0xA1)到254(0xFE)之间。对于GBK和UTF-8编码,中文字符的表示方式更复杂,但同样可以通过...

    day09_字节流、字符流2

    每次读写一个字节,直到源文件读完。 5. 字符输出流: 字符输出流(`Writer`类)处理Unicode字符,适合文本输出。练习七中,我们需要创建一个`BufferedWriter`,从控制台读取用户输入,每输入一行信息就写入文件...

Global site tag (gtag.js) - Google Analytics