[Megoldva] Android BufferedReader karakterkódolás hiba

Fórumok

Sziasztok!
Egy Androidos alkalmazáson dolgozom, ami Tcp Socket-tel kommunikál egy C# (Mono) alkalmazással.

A gond az, hogy amíg a C# alkalmazásban tökéletesen működnek az Androidról elküldött stringek, addig visszafelé ez már nem mondható el.

#############
Android:
PrintWriter output = new PrintWriter(socket.getOutputStream());
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));

output.println("hi");
output.flush();
msg = input.readLine();
if(msg == "hi") {
}

output.close();
input.close();
s.close();
##############
C#:
msg = System.Text.Encoding.UTF8.GetBytes("hi\n");
so.Client.Send(msg);

##########

Lényeg, hogy az Androidos app küld egy "hi" stringet a C# app-nak, ami visszaüzen ugyancsak egy "hi" stringet.
A gond az, hogy az Androidos kódban az if(msg == "hi") false értéket ad vissza és nem értem miért. Lehet már túl fáradt vagyok hozzá...

Előre is köszönöm az ötleteket. :)

Hozzászólások

Java-ban String-et nem ==-vel hasonlítunk össze, mert az a referenciát vizsgálja, hanem equals()-szal.
if ("hi".equals(msg))

Másrészt egyáltalán nem biztos, hogy a default kódolás UTF-8. Érdemes beállítani az írása és az olvasásra is.