Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите разобраться с кодировкой!

33K
29 декабря 2007 года
xxxXxFeLiXxXxxx
6 / / 29.12.2007
Здравствуйте!

Пишу я чат для своей локалки. Как основу взял пример из MSDN. но!

правильно отображаются только английские буквы!

помогите пожалуйста!!!

private void DoRead(IAsyncResult ar)
{
int BytesRead;
string strMessage;
try
{
// Finish asynchronous read into readBuffer and return number of bytes read.
BytesRead = client.GetStream().EndRead(ar);
if (BytesRead < 1) {
// if no bytes were read server has close. Disable input window.
MarkAsDisconnected();
return;
}
// Convert the byte array the message was saved into, minus two for the
// Chr(13) and Chr(10)
strMessage = System.Text.Encoding.ASCII.GetString(readBuffer,0,BytesRead-2);
ProcessCommands(strMessage);
// Start a new asynchronous read into readBuffer.
client.GetStream().BeginRead(readBuffer, 0, READ_BUFFER_SIZE, new AsyncCallback(DoRead), null);

}
catch( Exception ex)
{
MarkAsDisconnected();
}
}

объявление:

const int READ_BUFFER_SIZE = 255;
const int PORT_NUM = 10000;
private TcpClient client;
private byte[] readBuffer = new byte[READ_BUFFER_SIZE];

Спасибо заранее!
370
29 декабря 2007 года
koval
443 / / 29.08.2005
А чего ты хотел, если используешь ASCII
Цитата:

strMessage = System.Text.Encoding.[color=red]ASCII[/color].GetString(readBuffer,0, BytesRead-2);

, используй Юникод и будут тебе русские буквы отображаться

33K
29 декабря 2007 года
xxxXxFeLiXxXxxx
6 / / 29.12.2007
ага, я пробовал. только вот тогда вообще ничего не работает! комманды сервер вообще не понимает!не, наврал. комманды понимает, пользователей присоединяет, но вот клиенты ничег не читают с входного потока. и не показывают список пользователей
370
29 декабря 2007 года
koval
443 / / 29.08.2005
Цитата: xxxXxFeLiXxXxxx
ага, я пробовал. только вот тогда вообще ничего не работает! комманды сервер вообще не понимает!не, наврал. комманды понимает, пользователей присоединяет, но вот клиенты ничег не читают с входного потока. и не показывают список пользователей



Дык дело тогда не в кодировке а в твоем коде. Как-то сам писал подобный чат использовал Юникод и все работало на ура

33K
29 декабря 2007 года
xxxXxFeLiXxXxxx
6 / / 29.12.2007
Цитата: koval
Дык дело тогда не в кодировке а в твоем коде. Как-то сам писал подобный чат использовал Юникод и все работало на ура



хм... я вроде код примера не менял ... кстати если сервер пишет броадкаст на русском, все прекрасно его читают.

33K
29 декабря 2007 года
xxxXxFeLiXxXxxx
6 / / 29.12.2007
// This subroutine sends a message to all attached clients except the sender.
private void SendToClients(string strMessage, UserConnection sender)
{
UserConnection client;
// All entries in the clients Hashtable are UserConnection so it is possible
// to assign it safely.
foreach(DictionaryEntry entry in clients)
{
client = (UserConnection) entry.Value;
// Exclude the sender.
if (client.Name != sender.Name)
{
client.SendData(strMessage);
}
}
}

наверно дело в этом. как же тут явно задать кодировку???
33K
29 декабря 2007 года
xxxXxFeLiXxXxxx
6 / / 29.12.2007
всё, разобрался. сорри за беспокойство.
надо было на сервере кодировку в классе userconnection тоже поменять. а я не заметил )))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог