2013-07-24 2 views
3

내 문제 : StreamWriter를 사용하여 데이터를 쓰고 싶습니다 (내 문자열에 é 및 è이 포함되어 있음)하지만 작동하지 않습니다. 이 편지가 없으면 작동합니다.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 = 페르 스 : 스트림을

내 코드를 닫을 수 없습니다?
감사

+0


으로이 라인에 대한 확신 : 인코딩 ISO = Encoding.GetEncoding ("UTF -8 "); ? "iso-8859-1"이되어서는 안됩니까? – AlexDev

+0

그것은 내 아이디어 였지만 해결책이 아닙니다. – user2471450

답변

6

을 설정에서는 StreamWriter의 인코딩 :

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

이 시도는, 나는 그것이 도움이되기를 바랍니다. 그것은 나를 위해 일했다!

+0

오오오 그렇습니다! 그것은 작동합니다! 감사 – user2471450

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);