Wywołuję połączenie z warstwy pośredniej węzła do zaplecza Java i przekazuję ciąg znaków jako parametr zapytania. Wszystko działa wspaniale, dopóki nie zostaną użyte znaki alfabetu angielskiego (np .: ř, ý). Kiedy Java odbiera te znaki rzuca:Egzekwowanie kodowania utf8 w wywołaniu z węzła do Java
parse exception: org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8!
toll działa perfekcyjnie:
GET http://localhost:8000/server/name?name=smith
Wezwanie powiedzie się z powyższego błędu:
GET http://localhost:8000/server/name?name=sořovský
Moje pytanie dotyczy gdzie do tej kwestii . Znalazłem koder utf8 this dla węzła i myślałem o kodowaniu moich łańcuchów jako utf8 przed wywołaniem mojej warstwy Java w przyszłości. Czy to właściwe podejście, czy też powinienem coś robić w Javie?
Uwaga, to co moi odpowiednie nagłówki żądania wyglądać następująco:
{
...
accept: 'application/json, text/plain, */*',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'en-US,en;q=0.8,el;q=0.6',
...
}
Jeśli strona Java podaje ten błąd, to najprawdopodobniej dane wejściowe najprawdopodobniej nie są prawidłowo zakodowane w UTF-8, więc musisz sprawdzić, dlaczego strona Węzła nie koduje go poprawnie. Bez większej ilości szczegółów (jak wygląda twój kod?) Bardzo trudno jest udzielić bardziej szczegółowej odpowiedzi. – Jesper
@Jesper, dzięki! Dodałem szczegóły do mojego pytania, pokazujące opcje moich żądań. – MattDionis
Potrzebujesz więcej informacji na temat adresów URL i potencjalnych nagłówków żądań. Czy możesz przechwycić nagłówki żądań i dodać je do swojego pytania? –