• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
nicesoft
博客园    首页    新随笔    联系   管理    订阅  订阅

在c#中汉字按照两个字节处理

如何解决在c#中汉字按照两个字节处理

由于在.net中,c#默认是按照一个字节处理汉字,解决方法就是将需要解析的字符C#默认是Unicode编码,是按照一个字节处理汉字,这就会影响到我们精确截取带有汉字的字符串。如果要精确截取,首先需要将Unicode编码转换为ANSI编码,可以转换为Byte数组,之后按照数组截取字节即可。具体实现如下:

//将汉字按照两位字节处理
  private string GBKSubstring(string s,int starIndex,int len)
  {
   byte [] bwrite;//byte内容
   bwrite = Encoding.GetEncoding("GB2312").GetBytes(s.ToCharArray());   
   return Encoding.Default.GetString(bwrite,starIndex,len);
  }

//调用:

string s="asdfghjk中国人民zxcvbnm";
string s1=GBKSubstring(s,8,8);//return "中国人民"

posted @ 2011-02-05 01:25  nicesoft  阅读(3034)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3