`
soul_fly
  • 浏览: 39510 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

判断给定中文字符所属字符集的方法

阅读更多

常见的中文字符集有:GB2312字符集、GBK 字符集、BIG5字符集、 GB 18030字符集。其中GB2312字符集、GBK 字符集、BIG5字符集都是采用两个字节表示一个汉字。下面的程序中h表示字符的高字节位、l表示字符的低字节位,十六进制数值表示的是各种字符编码集的边界。

 

    public static boolean isGB2312(byte h, byte l){   
        int ih = h & 0xff;   
        int il = l & 0xff;   
        return ((ih>=0xa1 && ih<=0xf7 &&    
                 il>=0xa1 && il<=0xfe) ? true : false);   
    }   
  
    public static boolean isGBK(byte h, byte l){   
        int ih = h & 0xff;   
        int il = l & 0xff;   
        return ((ih>=0x81 && ih<=0xfe &&    
                (il>=0x40 && il<=0x7e ||    
                 il>=0x80 && il<=0xfe )) ? true : false);   
    }   

    public static boolean isBIG5(byte h, byte l){   
        int ih = h & 0xff;   
        int il = l & 0xff;   
        return ((ih>=0xa1 && ih<=0xf9 &&    
                (il>=0x40 && il<=0x7e ||    
                 il>=0xa1 && il<=0xfe )) ? true : false);   
    }   

 

这个方法已经用到了Yard中文分词系统中进行字符集的判断,同时如果你读过mysql的源码你会发现mysql里对字符集的判断也是采用这种方法。

 

1
0
分享到:
评论
3 楼 vb2005xu 2009-06-30  
那如果我要判断 "我" 这个字符串是什么编码的,怎么写?? 照你这个意思我必须得转了??
我怎么转,还有对 "我们有的撒旦法" 这种纵不能是一个一个的来判断吧..

2 楼 soul_fly 2009-06-29  
vb2005xu 写道
你这个都没有注释么? 那两个参数分别传什么值啊? 不明不白的 也不给个demo , 你裂解么?

请仔细看内容。h表示字符的高字节位、l表示字符的低字节位。
1 楼 vb2005xu 2009-06-29  
你这个都没有注释么? 那两个参数分别传什么值啊? 不明不白的 也不给个demo , 你裂解么?

相关推荐

    常用汉字utf-8字符集.txt

    ### 常用汉字UTF-8字符集解析与应用 #### 概述 在数字信息时代,字符编码是数据处理的基础。UTF-8(8位通用转换格式)是一种可变长度的字符编码,用于表示Unicode标准中的字符。《常用汉字utf-8字符集》主要收集了...

    GBK字符集(汉字完整版)

    - **广泛性**: GBK字符集涵盖了更多的汉字,可以满足大多数中文文档的编码需求。 - **兼容性**: GBK向后兼容GB2312,同时向前兼容GBK2312和GBK18030。 - **扩展性**: 支持的汉字数量远超GB2312,满足了更多领域的...

    java 字符串中文判断

    本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要理解Java中的字符类型`char`。在Java中,一个`char`类型的变量可以存储一个Unicode字符,...

    MYSQL修改字符集默认问题

    在深入探讨修改字符集的方法之前,我们首先需要了解MySQL中的字符集概念。字符集是指一系列字符及其编码方式的集合。在MySQL中,常用的字符集有`latin1`、`utf8`等。其中: - **`latin1`**:支持西欧语言,占用一个...

    mysql字符集转换

    本文将围绕“MySQL字符集转换”这一主题展开讨论,通过对给定文件中的标题、描述、标签以及部分内容进行分析,旨在深入讲解MySQL字符集转换的相关知识点。 #### 二、MySQL字符集概述 在开始详细介绍之前,我们先来...

    Java 正则表达式判断字符串是否包含中文

    这个范围涵盖了汉字的大部分常用字符集,包括简体和繁体中文。因此,可以通过这个编码范围来编写正则表达式,用以识别和处理中文字符。 #### 三、Java 正则表达式API简介 在 Java 中,主要通过 `java.util.regex` ...

    关于GBK和Unicode字符集转换乱码问题

    - **GBK**(GB2312-80的扩展):这是一种简体中文字符集标准,由中华人民共和国国家技术监督局发布。它支持所有的简体汉字以及部分繁体汉字,并且兼容GB2312标准。 - **Unicode**:这是一种国际化的字符编码方案,...

    判断字符编码格式代码

    - **定义**:Unicode是一种国际化的字符集标准,旨在为每种语言中的每个字符分配一个唯一的数字。 - **特点**: - 使用固定长度或可变长度编码。 - 包括多种编码形式,如UTF-8、UTF-16、UTF-32等。 - 支持世界上...

    oracle字符集超集子集对照表

    例如,在给定的文件中,US7ASCII作为基础的子集字符集,其被多个其他字符集如WE8DEC、US8PC437、WE8PC850等作为超集所扩展,这些超集字符集除了包含US7ASCII的全部字符外,还包含了特定语言或地区所需的额外字符。...

    修改数据库字符集

    假设我们正在使用 Oracle 数据库,并且需要将字符集从默认的 WE8ISO8859P1 修改为支持中文的 AL32UTF8。除了上述提到的环境变量设置外,还需要考虑以下几个方面: 1. **检查当前字符集设置**:使用 `SELECT * FROM ...

    识别中文字符

    4. C语言中的函数定义和使用:文件中的程序定义了一个名为`CaluateChineseCharacter`的函数,这个函数接收一个字符指针`const char* str`作为参数,目的是计算并返回给定字符串中的中文字符个数。函数中包含了对每个...

    字符集转换函数

    GBK编码是中国大陆广泛使用的字符集,它基于GB2312,增加了对繁体中文和其他语言的支持,共包含20902个汉字和符号。而UTF-16和UTF-8则是Unicode的两种常见编码形式,其中UTF-16用16位(2字节)或32位(4字节)表示一...

    系统如何从字符集显示字体

    例如,Big5字符集主要用于繁体中文环境,GBK字符集则用于简体中文环境。 #### 二、记事本读取文件过程 当记事本程序打开一个文本文件时,它首先读取文件中的内容,并尝试将其解释为文本。这一过程涉及多个步骤: ...

    Java判断字符串中是否包含中文方法

    特别是在多语言环境中,我们需要能够判断字符串中是否包含特定的字符集,比如中文字符。由于中文字符在Unicode编码中具有特定的编码范围,我们可以利用这一点来判断字符串中是否包含中文。 首先,了解Unicode编码...

    js字符集转码函数

    根据给定的信息,本文将详细解释“js字符集转码函数”的相关内容,包括函数的作用、原理及使用方法。 ### js字符集转码函数概述 在Web开发中,字符集编码是一个重要的概念。不同的系统和软件可能采用不同的字符集...

    支持自定义字符集的base64算法源代码

    在给定的标题“支持自定义字符集的base64算法源代码”中,我们可以理解到这个算法允许用户根据需求定制Base64编码所使用的字符集,而不是局限于传统的64个字符。这在处理需要特殊字符或者特定格式要求的数据时尤其...

    霍夫曼编码2个伪代码,对输入的字符集和各个字符对应的权值求出每个字符的霍夫曼编码。

    霍夫曼编码,对输入的字符集和各个字符对应的权值,例如A={a,b,c,d,e,f,g,h},各个字符对应的权值为{5,29,7,8,14,23,3,11},求出每个字符的霍夫曼编码。 【输入形式】 输入若干个字符(1 ),其权值为int型。 输入...

    C#实现判断字符串中是否包含中文的方法

    Regex类的IsMatch方法可以判断一个字符串是否匹配给定的正则表达式。 示例代码中,定义了一个名为HasChinese的扩展方法,这个方法接受一个字符串作为参数,并返回一个布尔值表示该字符串是否包含中文字符。扩展方法...

    Mysql字符集设置原理及常见问题解决.pdf

    mysql遇到字符集问题的常见解决方法,给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数 值就是字符的编码 (Encoding) 。例如,我们给字符 'A'赋予数值 0,给字符 'B'赋予数 值 1,则 0 ...

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

    在 PowerBuilder (PB) ...在实际应用中,这个函数可以扩展以处理其他字符集,或者增加错误处理机制,以应对可能出现的异常情况。同时,根据需求,也可以修改此函数以适应不同的拆分规则,例如保留或忽略特定的符号。

Global site tag (gtag.js) - Google Analytics