Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用StreamWriter编写特殊字符(é;、è;)?_C#_Asp.net_Special Characters_Streamwriter.write - Fatal编程技术网

C# 如何使用StreamWriter编写特殊字符(é;、è;)?

C# 如何使用StreamWriter编写特殊字符(é;、è;)?,c#,asp.net,special-characters,streamwriter.write,C#,Asp.net,Special Characters,Streamwriter.write,我的问题是:我想用StreamWriter编写数据(我的字符串包含字母e和è),但它不起作用。没有这些字母,它就可以工作 错误:无法关闭流 我的代码: string postString = "id=" + sIdTransaction + "&nom=" + sNom + "&prenom=" + sPrenom + "&email=" + sEmail + "&adresse.rue=" + sRue + "&adresse.codePostal="

我的问题是:我想用StreamWriter编写数据(我的字符串包含字母e和è),但它不起作用。没有这些字母,它就可以工作

错误:无法关闭流

我的代码:

 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é(这个问题)


请问我如何解决这个问题
谢谢

设置StreamWriter的编码:

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

试试这个,我希望有帮助。这对我有用

将代码替换为以下内容:

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=newstreamwriter(webRequest.GetRequestStream())

StreamWriter requestWriter=新的StreamWriter(webRequest.GetRequestStream(),iso)

您确定这行代码:Encoding iso=Encoding.GetEncoding(“utf-8”)?它不应该是“iso-8859-1”吗?这是我的第一个想法,但不是解决方案。