Muy buenas.
He creado un juego en Flash y perfectamente he conseguido que funcione todo, menos una perte. Resulta que cuando en el juego el usuario habla por el chat, si este mensaje contiene tildes, eñes, o carácteres españoles como (¡, ¿) se corta y envía de ese carácter hacia atrás y si se pone el carácter al principio lanza esta exepción:
Código:
java.io.UTFDataFormatException: malformed input: partial character at end
at java.io.DataInputStream.readUTF(DataInputStream.java:643)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at com.energy.communication.in.Talk.run(Talk.java:45)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Uso el método readUTF() de DataInputStream.
PD: El DataInputStream lo formo de la siguiente manera:
Código:
public void ReadMessage(ChannelBuffer Message, MessageEvent e) throws Exception
{
int Header = Message.readShort();
String Analized = "<No recibe más datos>";
if(Message.readableBytes() > 0)
{
Analized = "";
Message.markReaderIndex();
while(Message.readableBytes() != 0)
{
byte[] b = new byte[] { Message.readByte() };
Analized += (new String(b)).toString();
}
reader = new DataInputStream(new ByteArrayInputStream(Analized.getBytes()));
}