Текст, разрушающий символы Юникода - PullRequest
1 голос
/ 23 октября 2010

У меня странная ситуация, которая меня озадачивала неделями.Мой проект, Textual , является IRC-клиентом для Mac OS X. Он отлично работает, за исключением одной проблемы.Сообщения DCC SEND по протоколу DCC не работают должным образом.По какой-то причине первый раздел отправленного IP-адреса, для которого будут устанавливаться соединения, всегда обрезается.Например, правильное отправленное сообщение будет «DCC SEND file.png 72.218.77.160 1097 4699», но после отправки будет просмотрено как «DCC SEND file.png .218.77.160 1097 4699»

Я выделил этоUnicode-символу 0x01, который отправляется вдоль сообщения, чтобы отличить его от стандартного сообщения.Если этот символ удален, то зачистка не происходит.Я просто не могу понять, почему это так.Это может быть результатом сокетов или нет.Не моя сильная сторона на этом.Если у кого-то есть время помочь, это будет оценено.

Ответы [ 3 ]

0 голосов
/ 25 октября 2010

После дополнительных исследований это, похоже, проблема на стороне сервера, а не реальная проблема с самим клиентом.

0 голосов
/ 28 ноября 2010

Сообщение DCC SEND не должно содержать IP-адрес, отформатированный в виде точечного квадрата - его следует отформатировать как 32-разрядное десятичное число без знака.Для адреса 72.218.77.160 сообщение должно быть:

DCC SEND file.png 1222266272 1097 4699
0 голосов
/ 23 октября 2010

Может быть спецификацией (меткой порядка байтов).Какой язык программирования вы используете?

В зависимости от используемого вами варианта Unicode, некоторые метасимволы могут быть отправлены на другую сторону.Хорошее эмпирическое правило - никогда не отправлять какой-либо вариант Unicode в конечную точку, которая не способна читать Unicode (некоторые люди идут на компромисс в случае UTF-8, который почти идентичен ISO-8859-1 для английского текста, ноЯ не большой поклонник).

...