c#获取带有汉字的字符串长度

不知道大家注意没,用c#下自带的str.Length方法获得字符串str长度的时候,返回的总是字符的个数,但是如果字符串中包含汉字的话,一个汉字是占两个字符长度的,获取的长度值就有了问题。 
解决方案:

原文: http://www.cnblogs.com/haibing0107/p/5825600.html

正常情况下,我们是直接去string的length的,但是汉字是有两个字节的,所以直接用length是错的。如下图:

所以应该用以下代码来获取长度:

private void button1_Click(object sender, EventArgs e){string s = textBox1.Text; int i = GetLength(s); MessageBox.Show(i.ToString()); } public static int GetLength(string str) { if (str.Length == 0) return 0; ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen = 0; byte[] s = ascii.GetBytes(str); for (int i = 0; i < s.Length; i++) { if ((int)s[i] == 63) { tempLen += 2; } else { tempLen += 1; } } return tempLen; }

运行结果如下图:

也可以用这个获取长度:

int i = System.Text.Encoding.Default.GetBytes(s).Length;

posted on 2016-01-25 16:58 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/5157944.html

c#获取带有汉字的字符串长度相关推荐

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

    由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串. 自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度 ...

  2. java截取中文_java按字节截取带有汉字的字符串的解法(推荐)

    由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串. 自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度 ...

  3. 超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

    正常情况下,我们是直接去string的length的,但是汉字是有两个字节的,所以直接用length是错的.如下图: 所以应该用以下代码来获取长度: ? 1 2 3 4 5 6 7 8 9 10 11 ...

  4. 带有汉字的字符串截断出现半个“汉字”的解决方法-C语言源码

    汉字字符的编码为双字节,对于汉字字符和单字节字符混排的情况,如果目标截取的字符串内只包含奇数个单字节字符,则会出现半个汉字字符的问题.如下所示: (1)天水市秦州区南郭路2号(工行七里墩分理处? -- ...

  5. php获取汉字的长度,php中处理汉字字符串长度:strlen和mb_strlen

    PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数.对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍 ...

  6. js根据判断改变html字符串长度,JS获取字符串长度(包含汉字)的简单示例

    这篇文章主要为大家详细介绍了JS获取字符串长度(包含汉字)的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 方法一: /** * * @p ...

  7. js 获取汉字字符串长度

    在Unicode编码中,由于码点大于0xFFFF的字符必须用双字节表示,导致使用String.length获取这些字符串长度时会返回2. 例如: "啊".length // 1 & ...

  8. Go 学习笔记(31)— 字符串 string、字符 rune、字节 byte、UTF-8 和 Unicode 区别以及获取字符串长度

    1. 字符串 string 类型 Go 语言中字符串的内部实现使用 UTF-8 编码,通过 rune 类型,可以方便地对每个 UTF-8 字符进行访问.当然, Go 语言也支持按照传统的 ASCII ...

  9. Swift3.0语言教程获取字符串长度

    Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...

最新文章

  1. linux删除某个path_linux 从path中去掉某个
  2. 教你使用Vue.js的DevTools来调试你的vue项目
  3. Volume group VolGroup00 not found
  4. python闭合函数_Python中函数的闭包
  5. python3.8如何安装jieba库_安装jieba、wordcloud等第三方库
  6. 从北京站到天通苑怎么走,
  7. java-多线程编程
  8. wechat 微信ipad协议GO版本 最新不封号 长链接 完整版
  9. 学妹要的20道Redis面试题,在这也分享一下(转载自程序羊羊哥)
  10. MySQL复制表结构
  11. [哲学部分]马克思主义基本原理概论思维导图
  12. APACHE架构WEB服务器
  13. android adb连接多个夜神模拟器,夜神安卓模拟器连接adb的具体操作流程
  14. 互联网公司各岗位真实工作内容起底!运维又被扎心了。。。
  15. html可以播放所有本地视频播放器,VR播放器有哪些 能播放本地视频的VR播放器推荐...
  16. CSDN App产品分析报告
  17. 计算学生成绩的标准差 C语言
  18. 擦边上100分,我的托福考试总结
  19. Java 中正则表达式的经典用法总结——捕获组
  20. c语言切,c语言切换

热门文章

  1. python的缩进规则是什么意思_Python编程思想(2):Python主要特性、命名规则与代码缩进...
  2. 2017蓝桥杯B组:取数位(递归,求余和除法)
  3. Windows系统更新后,VS2012不能使用的问题
  4. bzoj 1673: [Usaco2005 Dec]Scales 天平(DFS)
  5. 解决 adobe reader 只能翻页,不能滚动的问题
  6. Selenium-IDE脚本录制,selenium-side-runner自动化测试教程
  7. python更换tkinter图标样式
  8. 在Jupyter Notebook中运行R (附一系列疑难解答)
  9. zynq开发系列4:EMIO连接按键控制MIO连接的灯
  10. scrcpy设置快捷键_推荐电脑高清晰同步Anroid屏幕软件Scrcpy