在vb.net中,是不是字符串的Length属性是字符的字符数,而不是字节数
而SubString截取的也是字符数而不是字节数?如果我要判断一个字符串的字节长度,如果大于20,则截取前20位,应该怎么做呢
而SubString截取的也是字符数而不是字节数?如果我要判断一个字符串的字节长度,如果大于20,则截取前20位,应该怎么做呢
解决方案 »
- input里面加入 runat="server"后,就不能调用js了,怎么回事?
- 这样JS是怎么做的
- 关于网站国际化的问题
- 传值问题,十万火急~~~
- vb图形颜色变化的问题,在线等,谢谢1
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置
- 学生问的问题,现在没有环境搞,请帮下忙
- 哪有C#的代码自动生成器
- 哪位大哥会用Encoder?请进
- 朋友们请来帮帮忙!关于Sql和Web的问题!
- 求asp.net2.0(C#)中文版教程或系统
- 一个用户注册程序,点了提交按钮没反映。今天非弄出来不可,高手进!
如果要得到字节长度,参见如下的用法:
string str= "我的一个测试abc";
System.Console.WriteLine(System.Text.Encoding.Default.GetByteCount(str));
Private Function GetSubString(ByVal src As String, ByVal length As Integer) As String
Dim i As Integer
Dim len As Integer
Dim ret As String = ""
For i = 0 To src.Length - 1
If Asc(src.Substring(i, 1)) < 0 Or Asc(src.Substring(i, 1)) > 255 Then
len += 2
Else
len += 1
End If
If len < length Then
ret += src.Substring(i, 1)
Else
Exit For
End If
Next
GetSubString = ret
End Function
Private Function GetStringLength(ByVal src As String) As String
Dim i As Integer
Dim len As Integer
For i = 0 To src.Length - 1
If Asc(src.Substring(i, 1)) < 0 Or Asc(src.Substring(i, 1)) > 255 Then
len += 2
Else
len += 1
End If
Next
GetStringLength = len
End Function
string str = "abcdddc";
byte[] bytes = Encoding.Default.GetBytes(str);
byte[] dest = Array.Copy(bytes, 0, dest, 0, 20);
str = Encoding.Default.GetString(dest);
类似这样的代码,另外还须自己处理半个汉字和不够20个字节长的情况。
byte[] bytes = Encoding.Default.GetBytes(str);
byte[] dest = new byte[20];
Array.Copy(bytes, 0, dest, 0, 20);
str = Encoding.Default.GetString(dest);
http://fenglin.xland.cn
------------------------
If Count > 20 Then
Dim arr() As Byte = System.Text.Encoding.Default.GetBytes(str)
str = System.Text.Encoding.Default.GetString(arr, 0, 20)
End If