vb.net中,如何把byte array还原成为包含中文的字符串
来源:互联网 发布:微博修改个性域名 编辑:程序博客网 时间:2024/06/06 23:17
这个问题,在网上好找了半天,但说实在话,不得不说,现在的程序员,脑子都僵化了。
一个能解决的也没有。
这还不说,多数人指出应当两边都用UNICODE,不要用ASC 2码之类的。我想说,这些是人家问的吗?不懂就是不懂,要是我就这样,何必不懂还要瞎JB指挥?
但我要说,这正是知其然不知其所以然,正确的回答,永远是先解释完提出问题的人,然后解决之。
然后,如果你愿意画蛇添足,再加上自己的想法。不想多说了,正确的代码我放在这里:
'=================================================================' '@ purpose: '将byte数据转换成string '@ input: i 一个long型变量 '@ param: ByRef byteArr() - Byte :被转换数组 '@ param: arrLen -long : 被转换数组的长度 '@ param output: none '@ return : 字符串 '@ ref global value: '@ create date: 2003-09- '@ author: 宋薇 '@ appendix: 可以处理中文 '@ example: tempStr = bytesToString(structVar.u8EquipmentId, OM_ASN1_DISPLAYSTRING_MAX_LENGTH) '=================================================================' Public Function bytesToString(ByRef byteArr() As Byte, ByRef ArrLen As Integer, Optional ByRef ArrBegin As Integer = 0) As String On Error GoTo ErrExcuted '确保长度 System.Diagnostics.Debug.Assert((UBound(byteArr) - LBound(byteArr) - ArrBegin + 1) >= ArrLen, "") Dim arrId As Integer Dim relStr As String Dim tmp As Integer For arrId = ArrBegin To ArrBegin + ArrLen - 1 If byteArr(arrId) > 0 Then 'change by haoyujie 2004-09-22 If byteArr(arrId) <= 128 Then '对于普通字符,直接转换 relStr = relStr & Chr(byteArr(arrId)) Else '与下一元素组合起来是一个汉字 tmp = 256.0# * byteArr(arrId) + byteArr(arrId + 1) relStr = relStr & Chr(tmp) arrId = arrId + 1 End If Else '如果遇到'\0' Exit For End If Next bytesToString = relStr Exit FunctionErrExcuted: DefaultErrorExcute() End FunctionEnd Module
这代码,以前是这个人写的,我给加上了注释,原来是VB6写的,我转成了目前的vb.net
至于不会用vb和vb.net的,真心建议现在的程序员,事事还是要踏实。
0 0
- vb.net中,如何把byte array还原成为包含中文的字符串
- 在Asp.Net中如何将带有中文字符的字符串转换成byte数组?
- vb.net 判定字符串中包含某个字符的个数
- 在VB中把字符串转换成Byte数组
- asp.net中提取字符串中所包含的中文
- asp.net中如何把一个字符串中的所有html代码去掉成为文本模式
- 在 Java 中把 .NET 使用 Convert.ToBase64String 转换出的 Base64 字符串还原成文字
- 在 Java 中把 .NET 使用 Convert.ToBase64String 转换出的 Base64 字符串还原成图片
- 在 Java 中把 .NET 使用 Convert.ToBase64String 转换出的 Base64 字符串还原成图片
- 在 Java 中把 .NET 使用 Convert.ToBase64String 转换出的 Base64 字符串还原成文字
- vb.net的Byte数据类型
- 在asp.net中判断字符串是否包含中文
- 用VB把数字转成中文字符串
- [VB.NET]vb.net如何把jpg图片插入到Excel中?谢了
- [VB.NET]VB.net中如何直接把Combobox下拉项拖放到另一个Combobox
- 如何把csharp里面的class/struct转换成byte array
- VB快速查找大型文件中包含的字符串
- VB快速查找大型文件中包含的字符串
- 美居购怎么样?加盟店类型有哪些?
- 蜗牛—职场规则,总有几条你不知道
- intellij idea 13&14 插件推荐及快速上手建议 (已更新!)
- MFC CListBox 鼠标移动到一行就显示高亮的方法代码
- 获取当前URL、controller、action
- vb.net中,如何把byte array还原成为包含中文的字符串
- OCP-1Z0-051 第157题 事务和锁
- 手把手教你ECSHOP去版权与标志
- 使用ArcGIS将Nodata区设置为0(软件操作类,非代码类)
- Codeforces 431C —— k-Tree(DP)
- 蔡莉-大数据时代下的数据质量挑战及数据质量评估
- 每天学习一个linux命令(2):cd命令
- java 像bbs.csdn一样的分页
- ubuntu下sqlite3的用法(以后会讲到wxWidgets使用sqlite3开发)