我有大量的数据,包括表格,字体,粗体,大小等。这些数据将作为byte []存储在数据库中。
当我检索那些数据时,我需要将byte []转换为字符串,因为我需要一些找到&从这个字符串替换,在我将此字符串转换为byte []后,我将失去原始数据结构,这意味着,我无法正确地看到任何表格,字体,粗体等。那么如何通过转换字符串来查找和替换byte [],并保持原始格式的数据。
答案 0 :(得分:1)
简短的回答是不。找出数据的格式,看看你可以做些什么来进行操作。如果数据 实际是文本,只存储为byte[]
,只要您正确编码字符串(即如果您的数据库需要UTF-8,则使用UTF-8编码),您的方法就可以工作,如果它是windows-1251,请使用它。
如果你有一个结构,其中一部分是一个字符串,你正在做的事情不能很好地工作。首先,您可能只想修改该字段的相关部分。在MS SQL上,您可以使用便捷的功能。但即便如此,你应该知道实际存储的内容,而不仅仅是假设字符串替换会神奇地起作用。
现在,黑客可能是使用一种不会破坏非字符串数据的显式编码。这将是一些单字节编码,不会做任何花哨的事情。只要您在阅读文本数据时使用相同的编码,这是可以的 - 但是,如果您使用任何unicode变体,那么您运气不佳;由于字符串规范化等功能,你不能真正保证每个字节以相同的方式出现。无论如何,这通常是一种不好的做法。
不要忘记,你正在寻找的字符串很可能实际上是在文本字段之外的某个地方 - 即使是纯粹的机会,它也可能发生,而且某些实践使这种情况更有可能发生。
再次:找出该数据字段中的数据格式 - 然后您就可以决定如何做您想做的事。
答案 1 :(得分:0)
试试这个
string result = System.Text.Encoding.UTF8.GetString(byteArray)
答案 2 :(得分:0)
使字节[]变为字符串
byte[] byteArray = new byte[10]; // put your byte array here
public void byteToString()
{
stringTemp = "";
stringTemp = BitConverter.ToString(byteArray).Replace("-", "");
}
你的数据仍然在byteArray .. :))
答案 3 :(得分:0)
如果字节数组包含二进制数据且不是字符串,请尝试将其转换为base64:
Convert.ToBase64String(yourByteArray);