项目中经常会遇到全角和半角的比较,最近碰到了一个这个方面就稍微研究了下!
问题大概是:出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)
{
// 全角
}
}
方法比较简单,仅供参考!
分享到:
相关推荐
5. **条件判断**: - **全角字母/数字**:当字符的Unicode码位于`65281`至`65373`之间时,执行以下操作: - `var d = str.charCodeAt(i) - 65248;`:计算出对应的半角字符的Unicode码。 - `result += String....
### Flex正则表达式判断中文或全角字符代码 在Flex开发中,处理文本时经常需要考虑到字符编码的问题,特别是当涉及到中文或者其他全角字符时。由于这些字符通常占用两个字节,因此简单的通过字符串的`length`属性来...
全角字符通常用于东亚文字输入系统,它们在显示时占用两个半角字符的空间,而半角字符则只占用一个字符的位置。这种转换在文本处理、数据清洗、格式化输出等场景下尤为重要。 ### 全角半角转换的原理 全角字符与...
全角字符占用两个字节,宽度通常是半角字符的两倍,常见于中文、日文、韩文等亚洲文字;半角字符则占用一个字节,如英文、数字和标点符号。在VS2005中,全角半角问题可能会影响到字符串的长度计算、格式化输出及文本...
通过判断传入的第二个参数,函数内部采用不同的逻辑来完成转换。 在实际应用中,Web表单通常会要求用户输入半角字符,但用户有时会误输入全角字符。如果未做处理,这将导致数据错误或程序逻辑错误。因此,通过上述...
如果需要处理全角数字和汉字,需要对代码进行适当的修改,增加相应的判断条件。 在实际应用中,可以将这个函数作为一个工具方法,存储在全局对象或模块中,以便在需要的时候调用。例如,如果你有一个包含全角字符的...
全角字符通常指中文字符、日文假名等亚洲语言文字,每个字符占用两个字节;半角字符则指英文字母、数字及标点符号等,每个字符占用一个字节。因此,在进行字符串截取时,需要区分全角与半角字符,并据此进行不同的...
根据提供的文档内容,本文将详细解释如何在Python中判断Unicode字符是否属于汉字、数字、英文字符或其他字符,并介绍如何进行全角与半角字符之间的转换。此外,还将提供一段示例代码来展示这些功能的实际应用。 ###...
全角字符和半角字符的概念源于东亚地区的文字处理,其中全角字符占用的空间是半角字符的两倍。 知识点一:全角与半角字符的定义及区别 全角字符是在字符编码时占用两个标准字符宽度的字符,常见于日文和中文等东亚...
6. **Halfwidth and Fullwidth Forms**:半角和全角形式,包含了中文的,号。 #### 四、判断字符串中有多少个汉字和标点符号 根据题目描述,我们需要实现一个方法来统计字符串中汉字和标点符号的数量。具体步骤...
因此,"asp.net 按字节检查包含全半角的文字"这个功能就显得尤为重要。 VB.Net中的这段代码提供了一个名为`CheckControlLength`的公共共享函数,用于检查字符串是否超出指定的字节数长度。这个函数考虑到了全角和...
该插件的实现原理可能包括对选定文本的逐字符分析,判断其是否为全角或半角,然后根据用户选择的转换方向进行相应的编码转换。对于“转换为kana”的功能,插件需要能够识别平假名和片假名,并进行相应的转换操作,这...
在实际项目中,"文字字数判断"可能还会涉及到更多细节,例如考虑全角字符(每个占两个字节)和半角字符(每个占一个字节)的区别,或者使用AJAX实时保存用户输入,防止数据丢失等。同时,为了提高用户体验,可以添加...
* 判断是否为全角 * * pChar:长度为1的字符串 * return: true:全角 * false:半角 */ function isFull (pChar){ if((pChar.charCodeAt(0) > 128)){return true;} else{return false;} } [removed...
23、原生JavaScript光标停在文字的后面,文本框获得焦点时调用 24、原生JavaScript检验URL链接是否有效 25、原生JavaScript格式化CSS样式代码 26、原生JavaScript压缩CSS样式代码 27、原生JavaScript获取当前路径 28...
需要注意的是,由于字符编码的不同,字符的计算可能会涉及全角和半角的问题,以及中文字符通常占用比英文字符更多的字节,这些在实现时都应该考虑进去。 最后,文档中还提到了OCR扫描技术可能带来的文字识别错误或...
软件名称:排版助手 GIDOT TYPESETTER 当前版本:3.0.6 作者:GIDOT ... 新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 ...·将排版工具菜单整合到鼠标...·修正引号功能对字节集判断不严密导致部分字符受损
新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具菜单整合到鼠标右键菜单中 ...·修正引号功能对字节集判断不严密导致部分字符受损 (此项由网友叱咤风云、恶魔之读书者提出)
新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具菜单整合到鼠标右键菜单中 ...·修正引号功能对字节集判断不严密导致部分字符受损 (此项由网友叱咤风云、恶魔之读书者提出)
### Python根据Unicode判断语言类型的实例解析 #### 一、引言 在处理多语言文本时,经常需要识别文本中的字符属于哪种语言或类别。Python 提供了强大的字符串处理能力,可以方便地通过Unicode编码来判断字符的语言...