2010-02-22 2 views
4

У меня есть свой собственный API Twitter, и я получил пару писем о проблеме при попытке опубликовать обновление статуса с помощью знаков акцента и других диакритических знаков. Я хотел бы закодировать их так, чтобы их обновлялось.Как кодировать диакритические знаки для обновлений Twitter?

Я знаю, что есть способы удалить диакритику, но я хотел бы сохранить ее.

Я прочитал страницу Twitter Counting Characters и заметил, что они действительно говорили о кодировании диакритики. Я хотел бы сделать это на C#. Я просто не знаю, как это сделать.

Здесь был первоначальный отчет об ошибке в API Twitter http://code.google.com/p/twitter-api/issues/detail?id=433

Я попытался, используя ..

string oldStatus = "con eñe"; 
string newStatus = oldStatus.Normalize(NormalizationForm.FormD); 

Я попытался с помощью FormC, FormKC и FormKD, и я либо получить 401 - Unauthorized Ошибка или ошибка Invalid Unicode value in one or more parameters.

Любые идеи?

ответ

1

Помогает ли это? Я тестировал приложение, из которого оно было, и оно успешно разместило мое обновление, используя диакритику в вашем сообщении (и длиной 140 символов).

HttpWebRequest request = CreateRequest("https://twitter.com/statuses/update.xml", "POST", 
username, password); 
string str = HttpUtility.UrlEncode(status); 
byte[] buffer = new UTF8Encoding(false, false).GetBytes("status=" + str); 
using (Stream stream = request.GetRequestStream()) 
{ 
    stream.Write(buffer, 0, buffer.Length); 
} 
request.GetResponse().Close(); 
+0

Вы используете OAuth? Поскольку я использую OAuth, я не записываю данные байта в поток. –

Смежные вопросы