0

UTF8 エンコーディングを使用して、URL からダウンロードした文字列を以前に保存しました。

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

基本的にはCSV形式です。文字列を読み取って操作すると、明らかにすべてのエンコードされた文字がまだ残っています。

これまで、私はそれを回避してきました。エスケープされた文字を知っているので、単にそれらを置き換えました。しかし、文字列をバイト[]に変換してから文字列に変換する適切な方法を知りたいと思ってい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 に答える