0

我之前使用 UTF8 编码存储了从 URL 下载的字符串。

\"TEXT LINE ONE\"\r\n\"MORE TEXT LINE\"

本质上它是 CSV 格式。当我读回字符串来操作它时,它显然仍然得到了所有编码的字符。

到目前为止,我已经解决了它,我知道转义的字符,以简单地替换它们。但是想知道将字符串转换为 byte[] 然后转换为字符串的正确方法,然后我可以执行此操作mystr = mystr.Trim('"');

你如何从上面的字符串中得到一个可以使用 System.Text.Encoding 的字符串函数的字符串?

更新:

原始 CSV 看起来像

"TEXT LINE ONE"
"MORE TEXT LINE"

好的,所以不是逗号分隔,但你明白了。

// load the data from URL
WebRequest request = WebRequest.Create(csvUrl);
request.Timeout = 30 * 60 * 1000;
request.UseDefaultCredentials = true;
request.Proxy.Credentials = request.Credentials;
WebResponse response = (WebResponse)request.GetResponse();
using (Stream s = response.GetResponseStream())
{
    var str = Encoding.UTF8.GetString(ReadFully(s)); 
}

在这种情况下str==\"TEXT LINE ONE\"\r\n\"MORE TEXT LINE\"

然后我在序列化它之前把它放到一个流中。

using (Stream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes (str)))
{
   // save
   // now it's saved with literal characters for each \"
}
4

1 回答 1

0

我不确定我是否完全理解您的问题,但是您可以使用以下方法在 String 和 byte[] 之间进行转换:

byte[] myBytes = Encoding.UTF8.GetBytes(myString);

...和...

String myString = Encoding.UTF8.GetString(myBytes);

如果您愿意,可以使用不同的编码代替 UTF8。

于 2013-03-05T17:23:22.260 回答