У меня есть приложение Ruby on Rails, которое является сервером для приложений Java и .Net. У меня есть собственный заголовок, который я использую для отправки некоторых данных, но когда эти данные достигают приложения Ruby on Rails, Rails считывает значение как UTF-8, а затем говорит, что значение не является допустимым UTF- 8 струн.
Например, если я отправлю JÜRGENELITE-HP, я получу:
#<ActiveRecord::StatementInvalid: PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xdc52
: SELECT * FROM "replicas" WHERE ("replicas"."identification" = 'J?RGENELITE-HP') AND ("replicas".user_id = 121) LIMIT 1>
Библиотека Java HTTP Client четко и правильно печатает данные в консоли:
DEBUG [main] (DefaultClientConnection.java:268) - >> POST /ze/api/files.json HTTP/1.1
DEBUG [main] (DefaultClientConnection.java:271) - >> X-Replica: JÜRGENELITE-HP
DEBUG [main] (DefaultClientConnection.java:271) - >> Authorization: Basic bWxpbmhhcmVzOjEyMzQ1Njc4
DEBUG [main] (DefaultClientConnection.java:271) - >> Content-Length: 0
DEBUG [main] (DefaultClientConnection.java:271) - >> Host: localhost:3000
DEBUG [main] (DefaultClientConnection.java:271) - >> Connection: Keep-Alive
DEBUG [main] (DefaultClientConnection.java:271) - >> User-Agent: Apache-HttpClient/4.1.2 (java 1.5)
Но когда он достигает Rails, он ломается. Какую кодировку использует HTTP для кодирования значений заголовков?