如:
每个汉字返回2,每个英文字符返回1
每个汉字返回2,每个英文字符返回1
解决方案 »
- ASP.NET FileUpload 上传问题
- asp.net中数据库的问题
- 在 GridView 中如何在添加 HyperLinkField 时,NavigateUrl 后面追加参数?
- 在做刷新一次页面图片变换一次效果的过程中碰到了问题,大家帮忙看看.
- 请问怎么删除XML节点的问题
- 关于在Repeater中得到相应的参数值,急!!!!!
- 水晶报表子报表问题!急!!!
- TextBox输入英文字母放到数据库中的问题?
- 使用DropDownList1设AutoPostBack="true",数据丢失
- 当鼠标载在<select>的<option>菜单中move会有事件产生吗
- 请问:一个用ASP.NET开发的电子商务系统,应该注意的安全方面有哪些?
- 在.net页面中如何实现弹出窗口
在字符串转换到字节数组的过程中,Encoding.Default 会将每个单字节字符,如半角英文,转换成 1 个字节,而把每个双字节字符,如汉字,转换成 2 个字节。而 Encoding.Unicode 则会将它们都转换成两个字节。我们可以通过下列简单的了解一下转换的方法,以及使用 Encoding.Default 和 Encodeing.Unicode 的区别:private void TestStringBytes() {
string s = "C#语言";
byte[] b1 = System.Text.Encoding.Default.GetBytes(s);
byte[] b2 = System.Text.Encoding.Unicode.GetBytes(s);
string t1 = "", t2 = "";
foreach (byte b in b1) {
t1 += b.ToString("") + " ";
}
foreach (byte b in b2) {
t2 += b.ToString("") + " ";
}
this.textBox1.Text = "";
this.textBox1.AppendText("b1.Length = " + b1.Length + "\n");
this.textBox1.AppendText(t1 + "\n");
this.textBox1.AppendText("b2.Length = " + b2.Length + "\n");
this.textBox1.AppendText(t2 + "\n");
}
运行结果如下。b1.Length = 6
67 35 211 239 209 212
b2.Length = 8
67 0 35 0 237 139 0 138
Dim encodingData() As Byte encodingData = System.Text.Encoding.Default.GetBytes(str)
If length < encodingData.Length Then
Return System.Text.Encoding.Default.GetString(encodingData, 0, length )
Else
Return str
End If End Function