在c#中,我如何将汉字按照两个字节截取,字符按一个字节截取?在线等

iamjialin 2006-11-01 09:06:49
有段报文如下:
999888 中国 01
前6个字节是固定,后面汉字最多为7个14个字节,不足位前面补空,
我如何用substring截取到这14个字节存放到一个变量中?
以上是总共是24个字节,但是到了.c#中就变成22个字节了
...全文
250 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinghawk 2006-11-01
  • 打赏
  • 举报
回复
C#默认是Unicode编码,你现在需要使用ANSI编码,如果要精确截取,首先需要将Unicode编码转换为ANSI编码,即1楼的方法转换为Byte数组,之后按照数组截取字节即可。
2楼的方法可行。
lovefootball 2006-11-01
  • 打赏
  • 举报
回复
SubString是按照位数取得

这个得用Byte取
lwjvince 2006-11-01
  • 打赏
  • 举报
回复
public static string ByteSubString(string strInput , int startIndex,int length)
{
strInput = strInput.Trim() ;
int byteLen = Encoding.Default.GetByteCount( strInput ) ;
if ( byteLen > length )
{
string resultStr = String.Empty ;
for ( int i = startIndex/2 ; i < strInput.Length ; i++ )
{
if ( Encoding.Default.GetByteCount( resultStr ) < length )
{
resultStr += strInput.Substring( i , 1 ) ;
}
else
{
break ;
}
}
return resultStr ;
}
else
{
return strInput ;
}
}
viena 2006-11-01
  • 打赏
  • 举报
回复
System.Text.Encoding.Default.GetBytes(str)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧