|
Тема |
P.S: може би го извадих от контекста [re: longy] |
|
Автор | longy (Нерегистриран) | |
Публикувано | 30.05.07 20:15 |
|
|
за да не се окаже, че проблема всъщност не е точно в това, което аз си мисля - ето за какво точно иде реч - исках възможно най-кратко да е въпросчето, ама сега като се замислих може би като е вън от контекста е по-кофти отколкото да е дълго:
====================
string-a, за който говоря се опитвам се да го изпратя към един вебсървър в UTF8.
в delphi без проблем го направих така:
.........
utf8Req := UTF8Encode(wsInput);
// подготовка на данните за изпращане през indy компонента (очаква TStrings):
req := TStringList.Create;
req.Add(utf8Req);
IdHTTP.Request.Method := hmPost;
result := IdHTTP.Post(serverURL, req);
...........
от другата страна (на сървъра) получават следните кодове:
222,207,215,220,162,3,210,8,183,67,38,56,25,52,23
т.е. май само unicode символите се кодират с 2 байта, а останалите са си пак в 1 байт.
и всичко е както го очакват на сървъра.
на C# опитвам така:
....................
// подготовка на данните за POST request-a // очаква byte[]
byte[] byteArray = (.............................)
WebRequest httpReq = (WebRequest)WebRequest.Create(serverURL);
httpReq.Proxy = WebProxy.GetDefaultProxy();
httpReq.Method = "POST";
httpReq.ContentType = "application/x-www-form-urlencoded";
httpReq.ContentLength = byteArray.Length;
Stream dataStream = httpReq.GetRequestStream();
dataStream.Write(byteArray. 0. byteArray.Length);
dataStream.Close();
....................
тоя byteArray как ли не се опитах да го получа от стринга - не мога да получа същия ефект (unicode символите с 2, a другите с 1 байт)
има ли стандартен начин да го направя или да си пиша функция ?
|
| |
UTF8Encode()
| longy
| 30.05.07 19:27 |
P.S: може би го извадих от контекста
| longy
| 30.05.07 20:15 |
|
|
|
|