C# Tips: String Convert to byte[]

string s = "test";

//Convert from string to byte[]
//byte[] bytes = Convert.FromBase64String(s);
byte[] bytes = Encoding.UTF8.GetBytes(s);

//Convert from byte[] to String
//string s2 = Convert.ToBase64String(bytes);
string s2 = Encoding.UTF8.GetString(bytes);
Console.WriteLine(s2);

问题:

当用Encoding.UTF8从byte[]转为string再转回byte[]时,内容有改变;而Convert.FromBase64String和Convert.ToBase64String保持了原内容的一致。

原因:

后补。好像和编码数量有关系。

时间: 2024-12-22 18:06:33

C# Tips: String Convert to byte[]的相关文章

How to convert a byte to its binary string representation

How to convert a byte to its binary string representation For example, the bits in a byte B are 10000010, how can I assign the bits to the string strliterally, that is, str = "10000010". byte b1 = (byte) 129; String s1 = String.format("%8s&

C# string类型和byte[]类型相互转换

string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转成string: string str = System.Text.Encoding.Default.GetString ( byteArray ); string类型转成ASCII byte[]: ("01" 转成 byte[] = new byte[]{ 0x30,0x31}) byte[] byteA

Convert.ToBase64String(Byte[])和Encoding.UTF8.GetString(Byte[])的区别

Encoding.UTF8.GetString是针对使用utf8编码得到的字符串对应的byte[]使用,可以还原我们能看懂的字符串而Convert.ToBase64String是对任意byte[]都可使用,得到的是用字符串表示的byte[]信息 内容类似"Jwl9Kh+lPfmSPio//UpvbA==" Base64有个优点,就是可以用文本格式传输,base64绝对不存在任何不可读的字符,也不存在关键字冲突字符,不需要转义.缺点:Base64比起它的原始文本增大约30%. 二者都是将

16进制格式的string转化为byte[]

例如将"ae00cf'转化为0xae00cf,"3031"转成new byte[]{0x30,0x31}; public static byte[] GetBytes(string hexString, out int discarded) { discarded = 0; string newString = ""; char c; // remove all none A-F, 0-9, characters for (int i=0; i<he

Hex string convert to Binary String and Vise-Versa(16进制和2进制字符串的相互转换)

这个转换在我们日常的编码中还是很有机会遇到的,这里贴出来和大家分享探讨. void pu_hex_to_binary(std::string strHex, std::string &strBinaryResult) { for ( int i = 0; i < strHex.size(); ++ i ) { char chTemp = strHex[i]; int chHexValue; if ( 'F' >= chTemp && chTemp >= 'A' )

GO、 智能合约、cannot use transactionRecordId + strconv.Itoa(id) (type string) as type byte in append

1.报错详情 2.在写fabric go智能合约发送的错误,像我这样的新手就是踩坑踩坑踩坑 3.下面是代码片段 4.研究了一下append用法.也看了下GO语言官网文章: var test_str []string test_str = append(test_str ,"this_ok") append(type,len,cap). 该函数第一个参数是类型,第二个参数是分配的空间,第三个参数是预留分配空间. append比较适合用字面量初始的切片. 传入数据初始大小后,我们得到的实际

oracle datetime 与 string convert

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换. 转换的格式: 表示year的:y  表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月:mon 用简写形式 比如11月或者nov :month 用全称

Hex string convert to integer with stringstream

#include <sstream>#include <iostream>int main() { unsigned int x; std::stringstream ss; ss << std::hex << "FF"; ss >> x; // output it as a signed type std::cout << static_cast<int>(x) << std::endl;

C# Byte[] 转String 无损转换

转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// string 转成byte[] /// </summary> /// <param name="hexString"></param> /// <returns>byte[]</returns> private byte[] strToToHexByte(string hexString) { hexS