Diskuze: Socket io nepodporuje UTF-8 znaky
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, zkušenosti s tím nemám, ale v tebou odkazovaném článku je podobný kód, který ovšem příjmá data jako JSON. Není problém v tom?
private Emitter.Listener onNewMessage = new Emitter.Listener() {
@Override
public void call(final Object.. args) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = (JSONObject) args[0];
String username;
String message;
try {
username = data.getString("username");
message = data.getString("message");
} catch (JSONException e) {
return;
}
// add the message to view
addMessage(username, message);
}
});
}
};
Jakého typu jsou objekty v parametru args? Jak je implementována metoda toString?
args[0].toString()
Ahoj, tady moje kompletní metoda onCreate vypadá momentálně následovně:
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
initialize();
chatContent = findViewById(R.id.main_chat_content);
this.socketManager.addEventListener("message", new Emitter.Listener() {
@Override
public void call(Object... args) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addChatMessage((JSONObject) args[0]);
}
});
}
});
this.socketManager.connect("Homepage:default");
}
private void addChatMessage(JSONObject informations) {
try {
String username = informations.getString("username");
String content = informations.getString("content");
chatContent.append("\n" + username + ": " + content);
} catch (JSONException e) {
Log.wtf("MainActivity", "JSONEXCEPTION");
e.printStackTrace();
}
Log.wtf("CALLLL", informations.toString());
}
Přikládám soubor, jak vypadá dump json objektu, který dojde uživatelovi
přes webovou stránka.
A zde je log "CALLLL" (nepotřebné věci smazány):
{"picture":"https:\/\mujweb.cz\/images\/players\/profile\/obrazke.png","content":"~a","time":"Dnes v 20:20"}
Prostě místo '/' dostanu '\/' a ty háčky taky blbnou ...
Co jsem si však projížděl jejich demo aplikaci, tak to mám víceméně
stejně, ale i přes to jim to funguje a mě ne.
Akorát tam mám navíc:
IO.Options options = new IO.Options();
options.secure = true;
options.port = 8080;
a pak vytvořím Socket pomocí
socket = IO.socket(this.URLAdress, options);
Nevíš jak z toho ven ?
Díky moc
Bohužel nevím. Možná se jedná o chybu v knihovně nebo serveru. Těžko říct.
Třeba to nesouvisí, ale našel jsem chybu:
Unicode decode error for Non-English characters #430
https://github.com/…a/issues/430
Používáš poslední verze?
Zobrazeno 5 zpráv z 5.