惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
H
Help Net Security
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
V
V2EX
M
MIT News - Artificial intelligence
Vercel News
Vercel News
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
D
Docker
V
Visual Studio Blog
博客园 - 叶小钗
美团技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - refuly

【半原创】将js和css文件装入localStorage加速程序执行 SqlAgent备份脚本 ASP.net 使用HttpHandler实现图片防盗链 提取HTML代码中文字的C#函数 - refuly - 博客园 水晶头的制作 解决ASP.NET“类型初始值设定项引发异常” 解决vs2005 经WebDeployment发布后 global.asax 事件不启动 C# 实现Epson热敏打印机打印 Pos机用 去掉文件名中的非法字符 - refuly - 博客园 window.onbeforeunload与window.onunlad对比 用Response.Filter生成静态页[要注意并发问题] HttpModule通过修改CSS切换皮肤 asp.net Excel导入&导出 - refuly - 博客园 计算机端口的介绍 Sql Server数据导出EXCEL c# 小数位数处理 新旧身份证合法性验证及验证算法 C#进制转换 Asp.net 备份、还原Ms SQLServer及压缩Access数据库
获取字符串的真实长度
refuly · 2009-04-11 · via 博客园 - refuly

这几天写程序要用到字符串的真实长度,可是MSsql 的len函数只能获取字的长度,无法获取真实的长度

也就是在网页里面所占的字符

因为英文“a”与中文 "的"所占的长度不同

于是google下找到函数datalength可以获得字符的真实长度

如:

select len('aaa')          --结果为 3
select len('张三丰')        -- 结果依然为 3
select datalength('aaa')   --结果为 3
select datalength('张三丰'--结果为 6

-----------------------分割线------------------------------------------------------------

在sql中解决了,那么在C#程序中呢

既然sql中实际上是得到的是数据的大小,那么在c#中是不是也可以这么做呢?

程序验证如下:

int len1 = System.Text.Encoding.Default.GetBytes("aaa").Length; //结果为 3
int len2 = System.Text.Encoding.Default.GetBytes("张三丰").Length; //结果为 6

看来结果是可用的。以后在程序中在也不用去判断字符是不是中文来计算字符串的总长度了(PS:以前我就是那么笨笨的来判断每个字符是不是中文来计算字符串总长度的 :))