类似下面代码
Sub dd()
Dim b() As Byte, str
str = "中国"
b = str
End Sub
这样我就可以通过b数组直接观察字符串内存的原始数据了。
类似上面vb代码功能,我现在需要把字符串在内存中存储的实际数据读到字节数组里面,哪位大神知道C#代码怎么写呢?
谢谢!
6 个解决方案
#1
byte[] bs1 = Encoding.UTF8.GetBytes("");
byte[] bs2 = Encoding.GetEncoding("GB2312").GetBytes("");
都是字符串转byte[] 显然不同的编码格式可能结果不一样
不太清楚C#怎么得到字符串的【内存原始数据】
#3
字符串是在内存上分配的是内容地址引用(指针),它的具体值实际上是分配到托管堆上的,不能说它的数据是”原始数据“,从它声明之后就表示了”真实“的数据,只不过我们的获取是通过地址引用来获取的。所以按着一般的数组操作添加就可以。
PS:个人观点,欢迎指正。
PS:个人观点,欢迎指正。
#4
我想想vb一样,修改byte[]数组,就能改变字符串的内容,这个怎么做呢?
#5
给string赋值,字符串内容就被修改了
感觉不需要通过byte[]数组来转换呀
#6
如何:获取变量的地址(C# 编程指南)
我想想vb一样,修改byte[]数组,就能改变字符串的内容,这个怎么做呢?
给string赋值,字符串内容就被修改了
感觉不需要通过byte[]数组来转换呀
你没明白我在说啥,我的意思是把字节数组指针指到字符串上,这样修改字节数组,字符串就跟着变了。本质是对内存的操作。
现在已经解决了,谢谢回答。
#1
byte[] bs1 = Encoding.UTF8.GetBytes("");
byte[] bs2 = Encoding.GetEncoding("GB2312").GetBytes("");
都是字符串转byte[] 显然不同的编码格式可能结果不一样
不太清楚C#怎么得到字符串的【内存原始数据】
#2
#3
字符串是在内存上分配的是内容地址引用(指针),它的具体值实际上是分配到托管堆上的,不能说它的数据是”原始数据“,从它声明之后就表示了”真实“的数据,只不过我们的获取是通过地址引用来获取的。所以按着一般的数组操作添加就可以。
PS:个人观点,欢迎指正。
PS:个人观点,欢迎指正。
#4
#5
#6
如何:获取变量的地址(C# 编程指南)
我想想vb一样,修改byte[]数组,就能改变字符串的内容,这个怎么做呢?
给string赋值,字符串内容就被修改了
感觉不需要通过byte[]数组来转换呀
你没明白我在说啥,我的意思是把字节数组指针指到字符串上,这样修改字节数组,字符串就跟着变了。本质是对内存的操作。
现在已经解决了,谢谢回答。