我以前使用UTF8编码存储了从URL下载的字符串。
\"TEXT LINE ONE\"\r\n\"MORE TEXT LINE\"
基本上它是CSV格式。当我读回字符串来操纵它时,它显然仍然有所有编码的字符。
到目前为止,我已经完成了它,我知道逃脱的角色,只需更换它们。但是想知道将字符串转换为byte []然后转换为字符串的正确方法,我可以做mystr = mystr.Trim('"');
on。
如何使用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 \"
}
答案 0 :(得分:0)
我不确定我是否完全理解您的问题,但您可以使用以下方法在String和byte []之间进行转换:
byte[] myBytes = Encoding.UTF8.GetBytes(myString);
...和...
String myString = Encoding.UTF8.GetString(myBytes);
如果您愿意,可以使用不同的编码而不是UTF8。