`
leaves
  • 浏览: 8925 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

全角文字判断

    博客分类:
  • C#
阅读更多
项目中经常会遇到全角和半角的比较,最近碰到了一个这个方面就稍微研究了下!

问题大概是:出PDF的时候,一个项目里由两个不同域组合而成,但是两个域的位置必须固定,这个时候就比较痛恨老美设计的时候没有考虑中国文化的博大精深。一个英文和一个汉字说占用的位置不一样!

google了下解决方法(如何判断全角文字),发现了这么一段代码:
System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding();
byte[] b = n.GetBytes(str);
for (int j = 0; j < b.Length; j++)
{
    if (b[j] >= 63)
    {
          全角文字
    }
}

心里很是高兴,可是渐渐发现转化了ASCII码后,为什么>63就是全角文字了,原来作者钻了个空子,中文字符转化ASCII吗后不能识别全部都变成63,才回出现这样结果,但是如何碰上日文就麻烦了,全半角假名全部都是63无法识别!所以该方法谨慎使用!

静下心理清了下面几个关系,就不难想出解决方法了:
    1 bit  = 1  二进制数据
    1 byte = 8  bit
    1 字母 = 1  byte = 8 bit
    1 汉字 = 2  byte = 16 bit
因此:汉字输入状态下的字符,占2个字节 (但不排除,自己更改了默认设置);
      英文输入状态下的字符,占1个字节 (但不排除,自己更改了默认设置);

解决的方法应该是去判断有几个字节:
for (int i = 0; i < str.Length; i++)
{
    String cutStr = str.Substring(i, 1);
    if (ASCIIEncoding.Default.GetByteCount(cutStr) == 2)
    {
        // 全角              
    }
}


方法比较简单,仅供参考!
1
1
分享到:
评论
1 楼 yangxiutian 2012-07-03  
ASCIIEncoding这个类找不到啊。

相关推荐

    javascript全角转换半角

    5. **条件判断**: - **全角字母/数字**:当字符的Unicode码位于`65281`至`65373`之间时,执行以下操作: - `var d = str.charCodeAt(i) - 65248;`:计算出对应的半角字符的Unicode码。 - `result += String....

    Flex正则表达式判断中文或全角字符代码

    ### Flex正则表达式判断中文或全角字符代码 在Flex开发中,处理文本时经常需要考虑到字符编码的问题,特别是当涉及到中文或者其他全角字符时。由于这些字符通常占用两个字节,因此简单的通过字符串的`length`属性来...

    全角半角转换,c++

    全角字符通常用于东亚文字输入系统,它们在显示时占用两个半角字符的空间,而半角字符则只占用一个字符的位置。这种转换在文本处理、数据清洗、格式化输出等场景下尤为重要。 ### 全角半角转换的原理 全角字符与...

    VS2005设置中文输入法(处理了全角问题)

    全角字符占用两个字节,宽度通常是半角字符的两倍,常见于中文、日文、韩文等亚洲文字;半角字符则占用一个字节,如英文、数字和标点符号。在VS2005中,全角半角问题可能会影响到字符串的长度计算、格式化输出及文本...

    PHP 全角转半角实现代码

    通过判断传入的第二个参数,函数内部采用不同的逻辑来完成转换。 在实际应用中,Web表单通常会要求用户输入半角字符,但用户有时会误输入全角字符。如果未做处理,这将导致数据错误或程序逻辑错误。因此,通过上述...

    javascript实现全角转半角的方法

    如果需要处理全角数字和汉字,需要对代码进行适当的修改,增加相应的判断条件。 在实际应用中,可以将这个函数作为一个工具方法,存储在全局对象或模块中,以便在需要的时候调用。例如,如果你有一个包含全角字符的...

    前后台实现精确截取指定长度字符串(考虑全角半角)

    全角字符通常指中文字符、日文假名等亚洲语言文字,每个字符占用两个字节;半角字符则指英文字母、数字及标点符号等,每个字符占用一个字节。因此,在进行字符串截取时,需要区分全角与半角字符,并据此进行不同的...

    python判断unicode是否是汉字,数字,英文,或者其他字符.docx

    根据提供的文档内容,本文将详细解释如何在Python中判断Unicode字符是否属于汉字、数字、英文字符或其他字符,并介绍如何进行全角与半角字符之间的转换。此外,还将提供一段示例代码来展示这些功能的实际应用。 ###...

    php代码把全角数字转为半角数字

    全角字符和半角字符的概念源于东亚地区的文字处理,其中全角字符占用的空间是半角字符的两倍。 知识点一:全角与半角字符的定义及区别 全角字符是在字符编码时占用两个标准字符宽度的字符,常见于日文和中文等东亚...

    判断字符串有多少个汉字和标点符号

    6. **Halfwidth and Fullwidth Forms**:半角和全角形式,包含了中文的,号。 #### 四、判断字符串中有多少个汉字和标点符号 根据题目描述,我们需要实现一个方法来统计字符串中汉字和标点符号的数量。具体步骤...

    asp.net 按字节检查包含全半角的文字

    因此,"asp.net 按字节检查包含全半角的文字"这个功能就显得尤为重要。 VB.Net中的这段代码提供了一个名为`CheckControlLength`的公共共享函数,用于检查字符串是否超出指定的字节数长度。这个函数考虑到了全角和...

    全角半角変換-crx插件

    该插件的实现原理可能包括对选定文本的逐字符分析,判断其是否为全角或半角,然后根据用户选择的转换方向进行相应的编码转换。对于“转换为kana”的功能,插件需要能够识别平假名和片假名,并进行相应的转换操作,这...

    文字字数判断

    在实际项目中,"文字字数判断"可能还会涉及到更多细节,例如考虑全角字符(每个占两个字节)和半角字符(每个占一个字节)的区别,或者使用AJAX实时保存用户输入,防止数据丢失等。同时,为了提高用户体验,可以添加...

    jQuery textarea文本框输入文字字数限制提示代码.zip

    * 判断是否为全角 * * pChar:长度为1的字符串 * return: true:全角 * false:半角 */ function isFull (pChar){ if((pChar.charCodeAt(0) &gt; 128)){return true;} else{return false;} } [removed...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    23、原生JavaScript光标停在文字的后面,文本框获得焦点时调用 24、原生JavaScript检验URL链接是否有效 25、原生JavaScript格式化CSS样式代码 26、原生JavaScript压缩CSS样式代码 27、原生JavaScript获取当前路径 28...

    javascript记录文本框内文字个数检测文字个数变化

    需要注意的是,由于字符编码的不同,字符的计算可能会涉及全角和半角的问题,以及中文字符通常占用比英文字符更多的字节,这些在实现时都应该考虑进去。 最后,文档中还提到了OCR扫描技术可能带来的文字识别错误或...

    Gidot_Typesetter_3.0.6.rar

    软件名称:排版助手 GIDOT TYPESETTER 当前版本:3.0.6 作者:GIDOT ... 新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 ...·将排版工具菜单整合到鼠标...·修正引号功能对字节集判断不严密导致部分字符受损 

    排版助手.v_3.0.6

    新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具菜单整合到鼠标右键菜单中 ...·修正引号功能对字节集判断不严密导致部分字符受损 (此项由网友叱咤风云、恶魔之读书者提出)

    软件名称:排版助手 GIDOT TYPESETTER

    新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具菜单整合到鼠标右键菜单中 ...·修正引号功能对字节集判断不严密导致部分字符受损 (此项由网友叱咤风云、恶魔之读书者提出)

    python根据unicode判断语言类型实例代码

    ### Python根据Unicode判断语言类型的实例解析 #### 一、引言 在处理多语言文本时,经常需要识别文本中的字符属于哪种语言或类别。Python 提供了强大的字符串处理能力,可以方便地通过Unicode编码来判断字符的语言...

Global site tag (gtag.js) - Google Analytics