«Строка», которую вы видите при передаче по сети, на самом деле является файлом XML в том виде, в каком он отображается в необработанном виде.
Если вы видите его как массив массива * 1003, он можетбыть переданным конструктору java.lang.String
:
byte[] theBytes = ...;
String theString = new String(theBytes, "UTF-8");
и оттуда в синтаксический анализатор XML.
Если фактические байты, передаваемые по сети, равны '<'
, ' '
,'3'
, 'c'
и т. Д., То что-то непонятное на стороне, отправляющей данные, потому что кажется, что перед отправкой данные преобразуются в NSString
с помощью метода -description
данных.NSKeyedUnarchiver
не достаточно умен, чтобы иметь дело с такой строкой, поэтому я не подозреваю, что это так, но если это так, довольно просто преобразовать это обратно в необработанный поток байтов и затем использовать вышеупомянутый Java-конструкторчтобы вернуть вашу XML-строку.