6

私の問題: StreamWriter (私の文字列には文字 é と è が含まれています) を使用してデータを書き込みたいのですが、機能しません。この文字がなくても機能します。

エラー: ストリームを閉じることができません

私のコード:

 string postString = "id=" + sIdTransaction + "&nom=" + sNom + "&prenom=" + sPrenom + "&email=" + sEmail + "&adresse.rue=" + sRue + "&adresse.codePostal=" + sCodePostal + "&adresse.ville=" + sVille;
string sIdContractant = "";
Encoding iso = Encoding.GetEncoding("utf-8");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(postString);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
postString = iso.GetString(isoBytes);

string sUrlAuth = "https://test.contralia.fr/Contralia/api/transactions/" + sIdTransaction + "/contractant/";
HttpWebRequest webRequest = CreationRequete(sUrlAuth);
webRequest.ContentLength = postString.Length;


StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();


adresse.Ville = Fercé (この é の問題)

どうすればこの問題を解決できますか?
ありがとう

4

2 に答える 2

7

StreamWriter のエンコーディングを設定します。

StreamWriter sw = new StreamWriter(webRequest.GetRequestStream(), encoding)

これを試してみてください。それは私のために働いた!

于 2013-07-24T12:24:21.693 に答える
1

コードを次のように置き換えます。

string postString = "id=" + sIdTransaction + "&nom=" + sNom + "&prenom=" + sPrenom + "&email=" + sEmail + "&adresse.rue=" + sRue + "&adresse.codePostal=" + sCodePostal + "&adresse.ville=" + sVille;
string sIdContractant = "";
Encoding iso = Encoding.GetEncoding("utf-8");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(postString);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
postString = iso.GetString(isoBytes);

string sUrlAuth = "https://test.contralia.fr/Contralia/api/transactions/" + sIdTransaction + "/contractant/";
HttpWebRequest webRequest = CreationRequete(sUrlAuth);
webRequest.ContentLength = postString.Length;


StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream(), iso);
requestWriter.Write(postString);
requestWriter.Close();

私はちょうどチェンジャー、あなたの11行目でStreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());

StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream(), iso);

于 2013-07-24T13:14:43.573 に答える