本章讲述:字节数限制,采用默认编码格式(在WPF中TextBox输入框中做限制也是OK的)

限制输入字符(中文)的字节个数,超过后,截取多余的字节

引用实例:
int nLength = GetBytesOfString(OsdText.Text);
if (nLength > 30)
{OsdText.Text = GetSubStringByLength(OsdText.Text, 30);
}//获取输入数据字节大小 返回大小
public int GetBytesOfString(string Text)
{int nByte = 0;byte[] bytes = Encoding.Unicode.GetBytes(Text);for (int i = 0; i < bytes.GetLength(0); i++){//  偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节if (i % 2 == 0){nByte++;      //  在UCS2第一个字节时n加1}else{//  当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节if (bytes[i] > 0){nByte++;}}}return nByte;
}//截取字符串指定字节数的内容,并返回实际截取的字节数
private string GetSubStringByLength(string Text, int LimitSize)
{byte[] bytes = Encoding.Unicode.GetBytes(Text);int nByte = 0;                       //  表示当前的字节数int i = 0;                              //  要截取的字节数for (; i < bytes.GetLength(0) && nByte < LimitSize; i++){if (i % 2 == 0)                 //  偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节{nByte++;                    //  在UCS2第一个字节时n加1}else{if (bytes[i] > 0)               //  当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节{nByte++;}}}//  如果i为奇数时,处理成偶数if (i % 2 == 1){if (bytes[i] > 0)                               //  该UCS2字符是汉字时,去掉这个截一半的汉字i = i - 1;elsei = i + 1;                                  //  该UCS2字符是字母或数字,则保留该字符}LimitSize = i;return Encoding.Unicode.GetString(bytes, 0, i);
}

C# 字节数限制(限制字符串字节数)相关推荐

  1. js获取字符串字符数和字节数,注意:区分字符串字符数和字节数(编程环境UTF-8的情形)

    1.字符串字符数: 直接str.length即可获取 2.字符串字节数: js获取字符串字节长度小技巧:https://blog.csdn.net/likun952345407/article/det ...

  2. html中js判断字数截取,JS判断字符串字节数并截取长度的方法

    本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是 ...

  3. java 字符串 字节数组_字符串到字节数组,字节数组到Java中的字符串

    java 字符串 字节数组 Today we will learn how to convert String to byte array in java. We will also learn ho ...

  4. Linux统计文件行数、字数、字节数

    2019独角兽企业重金招聘Python工程师标准>>> 语法:wc [选项] 文件 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给 ...

  5. linux查看文件内容行数,Linux 中如何查看文件的行数,字数,字节数

    在 Linux 系统使用中,我们经常需要查看或统计文本文件中的行数,字数,字节数等内容,那么怎么快捷的统计出文件中这些关键数据呢. 在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这 ...

  6. 十六进制字节串转换为float型十进制数

    十六进制字节串转换为float型十进制数 可以使用Python内置的struct和binascii模块.具体来说,需要使用struct.unpack()方法将十六进制字节串解包为float型数值. 以 ...

  7. linux 查看文件字数,Linux 中如何查看文件的行数,字数,字节数

    在 Linux 系统使用中,我们经常需要查看或统计文本文件中的行数,字数,字节数等内容,那么怎么快捷的统计出文件中这些关键数据呢. 在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这 ...

  8. 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )

    文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...

  9. wav文件头字节数和文件实际字节不一致_18道MySQL经典面试题及答案,8分钟看完,你会有不一样的收获...

    1.MySQL的复制原理以及流程 (1).复制基本原理流程 1. 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程--在使用start ...

  10. c语言中的无符号字节,C语言之有符号数和无符号数

    我们知道,在C语言中存在无符号数和有符号数(一些高级语言如Java里面是没有无符号数的),但是对于计算机而言,其本身并不区别有符号数和无符号数,因为在计算机里面都是0或者1,但是在我们的实际使用中有时 ...

最新文章

  1. 求任意数阶乘最后一位
  2. 递归求解并生成哈夫曼编码的代码实现
  3. golang辟谣之模板编程
  4. 组件化实践详解(二)
  5. Python之woe:woe库的简介、安装、使用方法之详细攻略
  6. 如何用最短时间搞定酷炫可视化大屏?这款工具值得一看
  7. excel如何匹配同名数据_Excel如何查找名字重复的数据
  8. 华为手机如何调时间显示_华为手机照片如何出现时间地点天气,教你30秒,一学就会...
  9. apache camel_Apache Camel入门
  10. 改变Jupyter的默认项目路径
  11. 必须声明标量变量_Excel VBA解读(136): 在用户定义函数中的变体、引用、数组、计算表达式、标量...
  12. linux mint 19 内核4.9,Linux Kernel 4.4.59 LTS/4.9.19 LTS/4.10.7维护版本更新发布
  13. 少儿C++编程如何入门
  14. Python if else elif
  15. MySQL create database 新建utf-8/utf8mb4编码 数据库
  16. 【NOIP2007提高组】矩阵取数游戏
  17. 新零售如何做到线上线下相结合?
  18. 12、Storage(存储)(基础知识)
  19. 【CCF会议期刊推荐】中国计算机协会(CCF)推荐计算领域高质量科技期刊分级目录(T2类)
  20. 北大软微2021计算机考研难度,2021北京大学软微计算机智能科技方向考研报录情况及备考经验分享...

热门文章

  1. win7安装小米8驱动
  2. 二维码之zxing仿新浪微博二维码
  3. 百度开发者中心 研究
  4. 操作系统实验二(银行家算法)
  5. 前后端分离,利用vue结合Springboot实现登录接口的制作并通过测试
  6. Multiple histogram-based face recognition with high speed FPGA implementation
  7. iOS 获取系统全部图片
  8. 牛客网 桃花(树的直径)
  9. unity3D打开Visual Studio编写代码没有代码补全怎么回事
  10. w8服务器dns修改,Win8 怎么修改dns地址 win8电脑修改dns服务器地址的方法