社区
C#
帖子详情
如何得到字符串的字节长度和按照字节长度截取
oceanju
2004-06-23 05:03:14
比如字符串"你好a",我想得到其字节长度5,而不是字符串长度3,请问用C#如何获取。
另外,如果我要按照字节来截取如何实现,比如"你好a",截取前4个字节,是"你好",但是如果截取前3个字节,我希望截取到"你",也就是不能把"好"这个字拆开截取,也即如果发现要截取的字节正好在一个汉字上,则不截取此汉字
...全文
218
7
打赏
收藏
如何得到字符串的字节长度和按照字节长度截取
比如字符串"你好a",我想得到其字节长度5,而不是字符串长度3,请问用C#如何获取。 另外,如果我要按照字节来截取如何实现,比如"你好a",截取前4个字节,是"你好",但是如果截取前3个字节,我希望截取到"你",也就是不能把"好"这个字拆开截取,也即如果发现要截取的字节正好在一个汉字上,则不截取此汉字
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
juqiang
2004-07-02
打赏
举报
回复
to zhzuo,这么古老代码你也有?给我发一份吧!我得早找不到了。。。
marvelstack
2004-06-23
打赏
举报
回复
//取字符串长度
s = "iam方枪枪";
int len = s.Length;//will output as 6
byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
len = sarr.Length;//will output as 3+3*2=9
codeangel
2004-06-23
打赏
举报
回复
看看下面的,给你个思路吧。
private String GetPin(String mystr)
{
String tt;
if ((mystr.ToUpper().CompareTo("A")>=0 &&
mystr.ToUpper().CompareTo("Z")<=0)|| (mystr.ToUpper().CompareTo("0")>=0 &&
mystr.ToUpper().CompareTo("9")<=0))
{
tt=mystr;
return tt;
}
else if (Asc(mystr) < Asc("啊")|| (Asc(mystr) >= Asc("匝"))
{
{
tt="z";
return tt;
}
else
{
tt=mystr;
return tt;
}
}
juqiang
2004-06-23
打赏
举报
回复
agree to 大象
GetBytes()之后,针对每个byte进行判断,是否在4e-9f之间,是否在00-a5之间,这两个段,其实就是汉字的区码和位码。这方面的资料,可以找从前dos下作汉字编程的代码。
strawwan
2004-06-23
打赏
举报
回复
int len = System.Text.Encoding.Default.GetByteCount("你好a");
GZ第二个问题!
CMIC
2004-06-23
打赏
举报
回复
汉字范围4E00-9FA5
CMIC
2004-06-23
打赏
举报
回复
byte[] mBytes=
System.Text.Encoding.GetEncoding("2312").GetBytes("你好a");
System.Text.Encoding.GetEncoding("2312").GetString(mBytes,0,2);
如果发现要截取的字节正好在一个汉字上,则不截取此汉字
-----------------------------------------
这个不知道怎么判断,有个想法可以根据Ascii码判断。
C# 按照
字节
长度
截取
字符串
C# 按照
字节
长度
截取
字符串
,可以
截取
任意
字节
长度
得
字符串
,使用了一点正则表达式。
C#
字符串
截取
固定
长度
的方法
C#
字符串
截取
固定
长度
的方法
截取
指定
长度
的
字符串
自己输入一个
字符串
,
字符串
中可以包括字符和汉字,
截取
指定的
字符串
按
字节
长度
截取
字符串
(支持
截取
带HTML代码样式的
字符串
)
按
字节
长度
截取
字符串
(支持
截取
带HTML代码样式的
字符串
) ,补全不完整的HTML代码
超实用c#按
字节
截取
长度
(原创)
1、 当
字符串
全部为单
字节
字符时,则可以用SubString方法
截取
指定
长度
即可。 2、 当
字符串
全部为双
字节
字符时,则只需要用SubString方法
截取
指定
长度
的一半 3、 当
字符串
为单
字节
双
字节
混合时,则我们可以用折中这样的方法来处理。 例如我们有一个
长度
为350
字节
的
字符串
。而我们需要
截取
100个
字节
,则我们进行如下操作: 先用SubString 方式取得100/2个字符。然后获取这50个字符的
字节
数。 当50个字符=100个
字节
时,则直接返回结果。如果还不到100个
字节
,则继续用SubString方法
截取
(100-(50个字符的
字节
数))/2 的字符。如此循环直到剩下的
字节
数为1 或者0的时候,则停止。当剩余一个
字节
时,再进行判断下一个字符是否是单
字节
字符,如果是单
字节
,则把这个字符一起做为结果返回。如果双
字节
字符,则将下一个字符放弃,直接返回已经
截取
的
字符串
的
长度
。 用此方法为指数形式
截取
,一般
截取
长
字符串
时只需进行几步操作即可。 比如
截取
10000个字符,则进行最多12+1次操作即可
C#
110,530
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章