相关疑难解决方法(0)

如何在C#中将字符串转换为byte []

如何从C#中的字符串中获取字节数组?我想将一个字符串传递给这个方法.

c# string byte cryptography bytearray

8
推荐指数
1
解决办法
921
查看次数

ServiceStack.OrmLite中的ntext

我怎样才能在ServiceStack.OrmLite代码中首先使用nText数据类型?

public class Email
{
    [AutoIncrement]
    public long ID { get; set; }


    public DateTime Date { get; set; }

    public string From { get; set; }

    public string Subject { get; set; } 

    nText =>
    public string Body { get; set; } 

}
Run Code Online (Sandbox Code Playgroud)

如果我使用字符串数据类型,ormlite在数据库中生成nVarchar(8000)

我需要超过8000个字符的数据

c# sql-server code-first servicestack ormlite-servicestack

8
推荐指数
1
解决办法
1890
查看次数

来自StreamReader的原始文件字节,幻数检测

我试图区分"文本文件"和"二进制"文件,因为我实际上想忽略具有"不可读"内容的文件.

我有一个我认为是GZIP档案的文件.我想通过检测魔术数字/文件签名来忽略这种文件.如果我用Notepad ++中的Hex编辑器插件打开文件,我可以看到前三个十六进制代码1f 8b 08.

但是,如果我使用a读取文件StreamReader,我不知道如何获取原始字节..

using (var streamReader = new StreamReader(@"C:\file"))
{
    char[] buffer = new char[10];
    streamReader.Read(buffer, 0, 10);
    var s = new String(buffer);

    byte[] bytes = new byte[6];
    System.Buffer.BlockCopy(s.ToCharArray(), 0, bytes, 0, 6);
    var hex = BitConverter.ToString(bytes);

    var otherhex = BitConverter.ToString(System.Text.Encoding.UTF8.GetBytes(s.ToCharArray()));
}
Run Code Online (Sandbox Code Playgroud)

在using语句的末尾,我有以下变量值:

hex: "1F-00-FD-FF-08-00"
otherhex: "1F-EF-BF-BD-08-00-EF-BF-BD-EF-BF-BD-0A-51-02-03"
Run Code Online (Sandbox Code Playgroud)

两者都不以Notepad ++中显示的十六进制值开头.

是否可以通过读取文件的结果获取原始字节StreamReader

.net c# encoding magic-numbers .net-4.0

7
推荐指数
2
解决办法
5720
查看次数

VB.NET和sizeof

我正在将一些代码从C#转换为VB.NET.我在C#中有以下行

var bytes = new byte[password.Length * sizeof(char)];
Run Code Online (Sandbox Code Playgroud)

MSDN上看来,VB.NET似乎没有sizeof运营商.我知道有一个Marshal.SizeOf但是进一步的MSDN文档声明返回的值可能与之不同sizeof.

有人可以帮忙吗?在VB.NET中是否有相同的声明?

附加信息

我的目标是将密码转换为字节数组,然后我可以散列,然后存储在数据库中或与之前存储的散列进行比较.但我不一定想得到与我的具体情况有关的答案.

Dim bytes(password.Length * xxx) As Byte
System.Buffer.BlockCopy(password.ToCharArray(), 0, bytes, 0, bytes.Length)
Dim sha512 = System.Security.Cryptography.SHA512.Create()
Dim hash = sha512.ComputeHash(bytes)

' compare hash or stroe in database
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net sizeof

7
推荐指数
1
解决办法
6857
查看次数

字符串到byte [],反之亦然?

可能重复:
.NET字符串到字节数组C#

如何将String转换为byte []数组,反之亦然?我需要将字符串存储在一些二进制存储中.请在两个方向上显示示例.还有一件事:每个字符串可能大于90Kb.

c# string binary copy

6
推荐指数
2
解决办法
1万
查看次数

SQL 查询将文本数据存储在 Varbinary(max) 中

有没有办法让 varbinary 在 SQL Server 中接受文本数据?

这是我的情况。我有相当大量的 XML,我计划以“压缩”格式存储它们。(这意味着 Varbinary。)

但是,当我进行调试时,我希望能够翻转配置开关并以纯文本形式存储,以便我可以从数据库进行故障排除(即不需要客户端应用程序来解压缩)。

是否可以将普通文本插入到 varbinary(max) 中?

.net t-sql sql-server text varbinary

5
推荐指数
1
解决办法
1万
查看次数

文件传输吃了很多CPU

我正在尝试通过IHttpHandler传输文件,代码非常简单.但是,当我开始单次传输时,它占用了大约20%的CPU.如果我将其扩展为20个同时传输,则CPU非常高.有没有更好的方法可以做到这一点来保持CPU更低?客户端代码一次只发送64KB的文件块.

public void ProcessRequest(HttpContext context)
{
      if (context.Request.Params["secretKey"] == null)
      {

      }
      else
      {
           accessCode = context.Request.Params["secretKey"].ToString();
      }

      if (accessCode == "test")
      {
           string fileName = context.Request.Params["fileName"].ToString();
           byte[] buffer = Convert.FromBase64String(context.Request.Form["data"]);
           string fileGuid = context.Request.Params["smGuid"].ToString();
           string user = context.Request.Params["user"].ToString();

           SaveFile(fileName, buffer, user);
      }
}

public void SaveFile(string fileName, byte[] buffer, string user)
{
      string DirPath = @"E:\Filestorage\" + user + @"\";

      if (!Directory.Exists(DirPath))
      {
          Directory.CreateDirectory(DirPath);
      }

      string FilePath = @"E:\Filestorage\" + user + @"\" + fileName;
      FileStream writer = new …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net web-services ihttphandler

5
推荐指数
1
解决办法
818
查看次数

在System.IO.Stream中搜索模式

我从源接收系统IO流.我将继续使用流对象,只要它包含字符串"MSTND".

我意识到除非我将它转换为字符串,否则我在流上无能为力.字符串转换仅用于子字符串匹配.但我不想做任何占用大量时间或空间的事情.时间/空间密集是如何从Stream转换为字符串仅用于子字符串匹配?

我写的代码是:

private bool StreamHasString (Stream vStream)
{
     bool containsStr = false;
     byte[] streamBytes = new byte[vStream.Length];
     vStream.Read( streamBytes, 0, (int) vStream.Length);
     string stringOfStream = Encoding.UTF32.GetString(streamBytes);
     if (stringOfStream.Contains("MSTND"))
     {
        containsStr = true;
     }     
     return containsStr ;
}
Run Code Online (Sandbox Code Playgroud)

c# stream

5
推荐指数
1
解决办法
4103
查看次数

使用指定为“utf-16”的编码解析 xml 时出现 XmlException

我在解析具有 utf-16 编码的 XML 时遇到问题,但它与 utf-8 完美配合。
任何人都可以帮助我解决这个问题吗?

我收到以下错误:

System.Web.HttpUnhandledException' was thrown.
System.Xml.XmlException: There is no Unicode byte order mark.
Cannot switch to Unicode

XML 标头:

<?xml version="1.0" encoding="utf-16"?>
<RiskAssessmentRequestValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Run Code Online (Sandbox Code Playgroud)

C# 代码隐藏:

    rptTransformedXml.DataSource = parser.ExtractData(xml);
    rptTransformedXml.DataBind();


    public List<XmlDataExtract> ExtractData(string xml)
    {
        MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(xml));
        return ExtractData(stream);
    }


    public List<XmlDataExtract> ExtractData(Stream xmlStream)
    {
        XmlReaderSettings settings = new XmlReaderSettings
                                         {
                                             IgnoreComments = true,
                                             IgnoreWhitespace = true,
                                             CloseInput = true
                                         };

        XmlReader reader = XmlReader.Create(xmlStream, settings);
        XmlPathBuilder pathBuilder = …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net xmlreader xml-parsing

5
推荐指数
1
解决办法
1万
查看次数

非常大的字符串到字节数组

我有一个XML文件,它来自数据库(Oracle 11g Unicode)表的导出.该表有一个表示文件的BLOB字段.该文件可能非常大.

因此,在我有一个非常大的文件的情况下,在XML中获取该文件的非常大的字符串表示.

我必须获取此字符串的字节,以便将文件插入另一个数据库实例中.

在这一点上,XML被收费,然后我有一个代表该文件的字符串.

我做的是这样的:

Encoding.Unicode.GetBytes(stringFileRepresentation);

但我得到了一个OutOfMemoryException.

如果我这样做:

Encoding.Unicode.GetBytes(stringFileRepresentation.ToCharArray());

我也得到了OutOfMemoryException.

在解码字符串之前我也尝试过这样做:

var chars = stringFileRepresentation.ToCharArray();
Encoding.Unicode.GetBytes(chars);
Run Code Online (Sandbox Code Playgroud)

而且我正在接听OutOfMemoryException电话ToCharArray().

所以我觉得在处理字符串时会出现问题.

然后我正在尝试我在这里发现的以下方法事件,如果我不确定我必须保护字符串的编码:

byte[] bytes = new byte[str.Length * sizeof(char)];
Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
Run Code Online (Sandbox Code Playgroud)

但我也在OutOfMemoryException实例化bytes变量.

现在,我跑了OutOfOptions,我不知道该怎么办.

c# xml string

5
推荐指数
1
解决办法
1867
查看次数