JMS kodowanie znaków

0

Posiadam następujący kod:

@Override
    public void onMessage(Message message) {
        TextMessage tmsg = null;
        tmsg = (TextMessage)message; 
        try {
            String text = tmsg.getText();
            System.out.println(text);
        } catch (JMSException ex) {
            Logger.getLogger(MessageBean.class.getName()).log(Level.SEVERE, null, ex);
        }
           
    }

Jak widać obecnie wiadomość wędruje do logów serwera. Potrzebuję jednak, aby przesyłane polskie znaki wyświetlały się poprawnie.
Ktoś ma jakieś propozycje? Przeszukałem sporo stron jednak żaden ze sposobów nie dział.

Próbowałem np

byte ptext[] = tmsg.getText().getBytes("ISO-8859-1"); 
String text = new String(ptext, "UTF-8"); 

Niestety nie działa ;/

2
clickk napisał(a):

Próbowałem np
byte ptext[] = tmsg.getText().getBytes("ISO-8859-1");
String text = new String(ptext, "UTF-8");

> 
> Niestety nie działa ;/


Oczywiscie ze nie dziala. Masz text, pobierasz jego bajty w kodowaniu ISO, nastepnie te bajty uzywasz zeby tworzyc nowy string, ale twierdzisz, ze one sa w UTF-8. Zadziala to:

```java
byte[] ptext = tmsg.getText().getBytes("UTF-8");
String text = new String(ptext, "UTF-8");

Zamiast "UTF-8" mozesz uzyc StandardCharsets.UTF_8 jesli jestes na Java 6+.

2

Dodatkowo należy pamiętać, aby przy wysyłaniu wiadomości też używać kodowania UTF-8.

0

@__krzysiek85: oczywiscie. Ja zalozylem, ze linijka ktora pobiera bajty nastepnie je wysle, a linijka ktora tworzy string z bajtow to cos co wiadomosc otrzymuje i chce zrekonstruowac tekst. Mozliwe ze zle zrozumialem autora i ze popelnilem zbyt duzo skryt myslowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1